
Python
Python由荷兰数学和计算机科学研究学会的Guido van Rossum于1990年代初设计,作为一门叫做ABC语言的替代品。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发
y_bccl27
这个作者很懒,什么都没留下…
展开
-
Python poetry的使用
poetry是一个Python虚拟环境和依赖管理的工具1.使用pip安装poetrypip install poetry执行完上述命令以后,就会在全局包管理目录(D:\python3.8\Lib\site-packages)下面新增下述两个目录poetrypoetry-1.1.7.dist-info使用poetry -V命令查看poetry是否完成成功,如果出现了版本号则说明安装成功poetry -VPoetry version 1.1.72.卸载poetry..原创 2021-07-05 16:26:52 · 3979 阅读 · 0 评论 -
Python pip的使用
pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。(某种程度上可以理解为Java里面的Maven)Python 2.7.9 + 或 Python 3.4+ 以上版本都自带 pip 工具。可以通过以下命令来判断是否已安装pip --version # Python2.x 版本命令pip3 --version # Python3.x 版本命令1.使用pip安装包例如当前安装的是Python 3.8.3版本,安装的路径位于D:原创 2021-07-02 18:21:20 · 243 阅读 · 0 评论 -
为什么推荐大家优先使用try-with-resources,而非 try-finally
在处理必须关闭的资源时,使用try-with-resources语句替代try-catch-finally语句,你会惊奇的发现,编写的代码更简洁,更清晰,同时也省去了手动显式释放资源的烦恼。原创 2024-10-22 10:32:31 · 82 阅读 · 0 评论 -
Python中的切片操作
2、如果不指定第一个数,Python就从序列首开始;如果没有指定第二个数,则Python会停止在序列尾;如果没有指定第三个数,则步长默认为1。1、切片操作符中的第一个数表示切片开始的位置,第二个数表示切片到哪里结束,第三个数表示切片步长。切片操作符是序列名后跟一个方括号,方括号中有3个可选的数字,并用冒号分割。在很多编程语言中,针对字符串提供了截取函数,其实目的就是对字符串切片。原创 2022-09-11 16:10:08 · 1656 阅读 · 0 评论 -
Python中的依赖注入
FastAPI 调用依赖项的方式与路径操作函数一样,因此,定义依赖项函数,也要应用与路径操作函数相同的规则。即既可以使用异步的 async def,也可以使用普通的 def 定义依赖项。在普通的 def 路径操作函数中,可以声明异步的 async def 依赖项;也可以在异步的 async def 路径操作函数中声明普通的 def 依赖项。比如,可以定义依赖其它依赖项的依赖项。会处理所有依赖项及其子依赖项,并为每一步操作提供(注入)结果。依赖项就是一个函数,且可以使用与“路径操作函数"相同的参数。原创 2022-09-01 22:23:40 · 1472 阅读 · 0 评论 -
Python中的特殊方法__call__
首先这里的@Counter是装饰器,执行起来顺序是foo=Counter(foo),实例化把foo函数传到类Counter里面,并存到对象属性里面,然后返回foo=Counter实例。__call__是Python类中一个非常特殊的实例方法,使得类实例对象可以像调用普通函数那样,以"对象名()"的形式进行使用。如果类中定义了__call__()方法,那么该类的实例对象也将成为可调用对象。实例对象也可以像函数一样作为可调用对象来用,那么,这个特点在什么场景用得上呢?...原创 2022-08-01 11:16:03 · 830 阅读 · 0 评论 -
Python中的self与类的理解
self其实就是类函数think的一个普通参数而已,指被调用对象,参数具体值也即我们的实例对象,当通过[实例.方法()]调用的时候,该方法与当前实例对象进行了绑定,调用的时候,Python会自动把实例对象作为参数传递过去,不需要再传递参数,这就是self的概念。我们构造了一个叫"xiaoming"的人,它是Person类的实例对象,我们给Person类定义了一个think方法,但是需要一个参数,我们可以把xiaoming这个实例对象传递过去。7、self代表类的实例。.........原创 2022-08-01 10:37:03 · 272 阅读 · 0 评论 -
如何查看Python的版本
windows环境:可在进入到命令窗以后使用下述命令进行查看python -V原创 2021-06-24 11:36:23 · 491 阅读 · 0 评论 -
Python使用pytest框架进行单元测试
在使用pytest框架进行单元测试之前,VsCode中需要已经安装Python插件,并且当前项目的环境中需要引入pytest依赖库:poetry add pytest默认情况下单元测试功能是关闭的,如果我们使用的是pytest框架进行单元测试的话,则需要在settings.json文件中增加下述配置:"python.testing.pytestEnabled": true,"python.testing.pytestArgs": ["tests"],python.testing.p原创 2022-04-01 22:12:02 · 1442 阅读 · 0 评论 -
Python使用pdfplumber直接提取PDF文本内容
前提:提取的文件必须是应用服务生成PDF文件,而非扫描的pdf文档,当前pdfplumber的版本为0.5.28该开源包在github上面的地址:https://github.com/jsvine/pdfplumber第一步:在服务应用的终端中使用下述命令安装pdfplumber包poetry add pdfplumber在输入了上述命令后,会在终端中弹出下述相关安装信息PS D:\Code\python\poetry-demo> poetry add pdfplumber.原创 2021-08-19 11:03:20 · 2544 阅读 · 0 评论 -
Python中的协程
1.协程协程不是计算机提供,程序员人为创造。协程(Coroutine),也可以被称为微线程,是一种用户态内的上下文切换技术。简而言之,其实就是通过一个线程实现代码块相互切换执行。实现协程有这么几种方法:greenlet,早期模块yield关键字asyncio装饰器(Python 3.4开始)async、await关键字(Python 3.5开始)目前比较推荐的实现协程的方法是:async、await关键字2.greenlet实现协程2.greenlet实现协程...原创 2022-03-14 17:59:16 · 3212 阅读 · 0 评论 -
Python中的Monkey Patch(猴子补丁)
一、猴子补丁的介绍关于猴子补丁为啥叫猴子补丁,据说是这样子的:这个叫法起源于Zope框架,大家在修正Zope的Bug的时候经常在程序后面追加更新部分,这些被称作是“杂牌军补丁(guerilla patch)”,后来guerilla就渐渐的写成了gorllia((猩猩),再后来就写了monkey(猴子),所以猴子补丁的叫法是这么莫名其妙的得来的。Monkey Patch的翻译叫“程序运行过程中的补丁”二、什么时候用到如果都是自己写的代码,Monkey Patch 就毫无意义了,直接改.原创 2022-03-08 14:32:09 · 1892 阅读 · 0 评论 -
Python中的异常处理try、exception、raise
一、try...except有时候我们写程序的时候,会出现一些错误或异常,导致程序终止。例如,做除法时,除数为0,会引起一个ZeroDivisionError:a=10b=0c=a/bprint("done")执行上述代码,其输出结果为:Traceback (most recent call last): File "d:\Code\learn\poetry-demo\poetry_demo\demo.py", line 3, in <module> c=a原创 2022-01-16 22:20:31 · 490 阅读 · 0 评论 -
Python中的pass语句
该处的 pass 便是占据一个位置,因为如果定义一个空函数程序会报错,当你没有想好函数的内容是可以用 pass 填充,使程序可以正常运行。Python pass 是空语句,是为了保持程序结构的完整性。不做任何事情,一般用做占位语句。原创 2022-09-17 21:41:04 · 1110 阅读 · 0 评论 -
Python中yield的用法
如果对yield还没有一个初步认识,那么我们暂时先把yield看作“return” ,这个是直观的,它首先是个return,普通的return就是在程序中返回某个值,返回之后程序就不再往下运行了。看作return之后再把它看成是生成器(generator)的一部分(带yield的函数才是真正的迭代器),如果对这些不明白的话,那先把yield看作return,然后直接看下面的程序:def foo(): print("starting...") while True: re原创 2022-01-09 18:59:17 · 169 阅读 · 0 评论 -
VSCode配置Python开发环境
首先需要在VSCode中安装Python扩展,注意该扩展是由微软发布的,并且该扩展的名称是“Python”,如下图所示:接着,还需要安装Python解释器,我们可以通过地址https://www.python.org/downloads下载Python的某一个版本,当前我选择的是3.8.7版本下载完Python解释器后,双击下载文件进行安装,首先会弹出下述这样一个界面,选择自定义安装在CMD中输入python -V命令,如果出现了Python 3.8.7字样,则说明Pyth.原创 2022-01-03 23:15:45 · 999 阅读 · 0 评论 -
VsCode配置Python项目的setting.json和launch.json两个配置文件
我们在VsCode中首次创建一个Python项目,一般情况下是不会有setting.json和launch.json两个配置文件,如下图所示:那么这个时候我们可以通过点击下方的“运行和调使”、“创建自定义launch.json文件”然后再点击“Python文件 调试打开的Python文件”,这个时候就可以看到在当前项目的根目录下会多出一个.vscode文件夹,该文件夹下面会产生一个launch.json文件然后再点回这个按钮,就会看到其模块的上方有一个绿色的右向...原创 2022-01-22 19:10:46 · 5825 阅读 · 0 评论 -
VsCode配置Python开发环境后运行代码会报错“无法加载文件 D:\Code\xxx\poetry-demo\.venv\Scripts\Activate.ps1”
问题描述:在VsCode中配置Python开发环境后运行代码会报错“无法加载文件 D:\Code\xxx\poetry-demo\.venv\Scripts\Activate.ps1”解决方法:第一步:以管理员的身份运行powershell第二步:执行get-ExecutionPolicy命令,回复Restricted,表示状态是禁止的第三步:执行set-ExecutionPolicy RemoteSingned命令第四步:选择Y,回车特别提示:以上仅仅为可参考的处理方法,个人电原创 2022-01-22 16:55:04 · 1404 阅读 · 4 评论 -
Python中让人迷惑的if __name__== ‘__main__‘
如果这个模块本身不被其它模块所调用,而是自己运行的,有没有if__name__=='__main__',执行效果应该都是一样的,这时__name__的值就等于'__main__';如果这个模块有被其它模块调用,就需要if__name__=='__main__'告诉调用这个模块的模块,if__name__=='__main__'中的代码在调用时不要被执行,因为这个时候__name__等于的是模块名并不等于__main__,执行if__name__=='__main__'之外的代码就可以啦。..........原创 2022-07-29 18:56:25 · 154 阅读 · 0 评论 -
Python使用装饰器捕获异常
# 定义一个修饰器:当有价报关单ps为无价报关单不符合预期时,将有价报关单文件单独进行保存def save_unexpect_ps_flie(func): def wrapper(*args, **kw): try: return func(*args, **kw) except: # 1.获取原有价报关单文件数据 filePath = args[0] with ope.原创 2022-01-09 23:21:15 · 1183 阅读 · 0 评论 -
Python中的@lru_cache装饰器
当缓存队列已满时,新的元素加入队列时,需要从现有队列中移除一个元素,LRU 策略就是将最近最少被访问的元素移除,从而腾出空间给新的元素。如果发生用户的删除或者新增时,我们再请求用户接口时仍然返回的是缓存中的数据,这样返回的信息就和我们数据库中的数据就会存在差异,所以当发生用户新增或者删除时,我们需要清除原先的缓存,然后再请求用户接口时可以重新加载缓存。特别注意:@lru_cache修饰器的使用位置要注意,不能将其放到@app.get修饰器的上面否则@lru_cache修饰器的缓存功能会失效。原创 2022-08-25 10:58:32 · 767 阅读 · 0 评论 -
Python中的@property装饰器
# class Person(object):# def __init__(self, name, age):# self.__name = name# self.__age = age# def get_age_fun(self):# return self.__age# def set_age_fun(self, value):# if not isinstance(value, int):# .原创 2022-01-06 10:28:24 · 584 阅读 · 0 评论 -
Python中的@dataclass装饰器
简单来说,就是你定义一个很普通的类,@dataclass装饰器可以帮你生成__repr__、__init__等特殊方法,就不用自己写一遍了。为了解决实例化时,参数过多时的痛点,我们可以在MyClass这个类的上面添加一个装饰器@dataclass,如下所示。其它参数类似,从上面可以看到,如果不加参数,默认情况下,@dataclass装饰器会生成。方法,如果不想让装饰器生成对应的方法,可以在入参时候将其改为False。方法,如果不想让装饰器生成对应的方法,可以在入参时候将其改为False。..........原创 2022-07-28 14:44:01 · 2154 阅读 · 0 评论 -
Python中的@classmethod修饰符
classmethod修饰符对应的函数不需要实例化,不需要self参数,但第一个参数需要是表示自身类的cls参数,可以来调用类的属性,类的方法,实例化对象等class A(object): bar = 1 def func1(self): print ('foo') @classmethod def func2(cls): print ('func2') print (cls.bar) c原创 2022-02-20 22:26:33 · 264 阅读 · 0 评论 -
Python中的AES加解密算法
import binasciifrom Crypto.Cipher import AES# 第一种模式:AES加密算法下ECB模式的加解密算法# 检查字符串的bytes长度是否为16的整数倍,如果不是将其补全为最小倍数# 补全示例:Java才是世界上最好的语言!\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00def aes_en(text: str) -> str: length = 16 count = len(text.en.原创 2021-12-29 18:04:51 · 609 阅读 · 0 评论 -
Gotenberg
Gotenberg提供了一个开发者友好的API,可以与强大的工具交互,如Chromium和LibreOffice,将许多文档(HTML, Markdown, Word, Excel等)转换为PDF,转换,合并等等!Gotenberg在docker hub官网上的访问地址:https://hub.docker.com/r/gotenberg/gotenberg,可以使用下述命令启动gotenberg服务:docker run --rm -p 3000:3000 gotenberg/gotenberg原创 2021-12-06 15:30:24 · 1209 阅读 · 0 评论 -
Python中pip包管理工具的源配置文件pip.ini
当前环境为windows10时,安装了Python以后,在C:\Users\admin目录(当前用户)下创建pip文件夹,并在此文件夹下新建pip.ini文件:在pip.ini文件中编辑下述内容:[global]index-url = http://pypi.tuna.tsinghua.edu.cn/simple[install]trusted-host=pypi.tuna.tsinghua.edu.cn第一行配置:表示默认使用此镜像源第二行配置:信任此镜像源的域名接着在使用原创 2021-11-30 11:37:58 · 2658 阅读 · 0 评论 -
Python在使用pip安装某个库时报错 Could not find a version that satisfies the requirement numpy
问题描述:Python中在使用pip的下述命令安装第三方库numpypip install -U numpy -i http://mirrors.aliyun.com/pypi/simple出现警告The repository located at mirrors.aliyun.com is not a trusted or secure host and is being ignored,并且报错Could not find a version that satisfies the requi.原创 2021-11-30 10:39:19 · 12300 阅读 · 0 评论 -
Python中的pip包管理工具被删除重新进行安装
在本地环境开发时,使用pip的相关命令安装依赖时,突然遇到了pip包管理工具被删除了pip的官网:https://pip.pypa.io/en/stable/installation/#get-pip-py 对于这个问题已经提出了相关的解决方法。一般情况下,安装了Python就会自动安装了pip,如果因为一些情况被意外删除了,可采用下述方法重新安装:如果是在其它的系统中删除了pip,则需要更改为相应系统的解决方法...原创 2021-11-29 17:12:29 · 1003 阅读 · 0 评论 -
Python 包管理工具poetry配置国内PyPI镜像源
不论是使用pip,还是Pipenv、Poetry等工具,安装Python包的时候会默认从官方的PyPI源下载文件,速度比较慢。国内的一些公司和机构提供了PyPI镜像源(mirrorsource),你可以设置让这些工具从国内的镜像源安装Python包,以便提高下载速度。官方的PyPI源的URL为:https://pypi.org/simple/(旧的URL为https://pypi.python.org/simple),常见的国内PyPI镜像源有:豆瓣 https://pypi...原创 2021-11-12 13:00:09 · 14131 阅读 · 0 评论 -
Python中使用poetry add numpy安装numpy包时,报Python版本不适合
问题描述:首次构建Python Web项目后,使用poetry add numpy安装numpy包时,报如下错误解决方法:将pyproject.toml文件中的python版本修改为上述指定的版本范围再次使用poetry add numpy命令即可正常安装numpy包...原创 2021-11-11 18:40:53 · 1596 阅读 · 0 评论 -
Python的pyproject.toml文件中的tool.poetry.dev-dependencies选项
使用了poetry构建了一个项目后会有一个 pyproject.toml 文件,该文件中有一段[tool.poetry.dev-dependencies]的配置,如下图所示:[tool.poetry.dev-dependencies]:配置仅用于开发的依赖包,如果我们想安装某一个开发时的依赖,可以下述命令:poetry add 依赖名 --dev同样,如果想要移除该选项中的依赖包,在之前的卸载命令中需要也是需要添加 --dev 选项poetry remove 依赖名 --dev..原创 2021-12-21 17:24:13 · 2720 阅读 · 0 评论 -
Python中fastapi构建的web项目进行docker部署
假设使用fastpi已经创建好了一个web项目第一步:在项目的根目录路径下面创建一个名为dockerfile的文件第二步:传统的方法是在dockerfile文件中编辑下述内容FROM python:3.9WORKDIR /codeCOPY ./requirements.txt /code/requirements.txtRUN pip install --no-cache-dir --upgrade -r /code/requirements.txtCOPY ./app /code原创 2021-11-29 15:31:35 · 936 阅读 · 0 评论 -
Python中fastapi构建的web项目使用.gitlab-ci.yml文件在KubeSphere中进行自动部署
首先需要保证的是我们所创建的Python项目通过Dockerfile文件构建成docker镜像以后,创建并启动容器时项目可以正常跑起来,假设当前这些前置步骤已经完成。由于需要使用.gitlab.yml文件在KubeSphere上实现自动部署,因此对于一个Pyhton项目可能会存在多个不同环境(开发、测试、生产)下的配置文件:.env_local.env_dev.env_prod该配置文件如何才能被我们的项目所使用以及与其相关的.env系统默认的配置文件的优先级问题在在其它文档中已做阐述。现在是原创 2022-01-28 14:59:05 · 1851 阅读 · 0 评论 -
Python中fastapi构建的web项目使用pyinstaller打包为exe文件
假设当前已经使用fastapi构建了一个web项目,项目结构为:如果我们想使用pyinstaller对此web项目进行打包为exe文件,则需要在项目的跟目录下面执行下述命令先安装pyinstaller:poetry add pyinstaller但是在执行上述命令后,控制台报错了,其错误内容为:刚开始看到这个错误提示时,我其实考虑到的是使用poetry安装pyinstaller可能会因为Python版本问题而导致无法正常安装pyinstaller,但是我不知道怎么处理哈(ps:原创 2022-02-23 00:06:38 · 2151 阅读 · 0 评论 -
Python 项目中requirements.txt依赖文件的使用
在学习他人的Python项目时,经常会看到一个requirements.txt文件,里面记录了当前程序的所有依赖包及其精确版本号。其好处就是在新设备上重新构建项目时,快速的添加运行程序所需要的依赖。生成requirements.txt文件pip freeze > requirements.txt安装requirements.txt依赖pip install -r requirements.txt...原创 2021-11-12 14:02:39 · 3116 阅读 · 0 评论 -
Python Web项目自定义虚拟环境
一般情况下,创建项目后首次使用poetry add xxx命令时,系统会自动为我们的项目在C盘目录下构建一个虚拟目录,但是虚拟目录存在这个位置对于我们去查看一些相关的问题时可能并不是很方便,这个时候我们就需要自定义项目的虚拟环境的位置。第一步:在当前项目的根目录路径下面使用下述命令查看虚拟环境的位置poetry env info第二步:删除上述虚拟环境的目录及其子文件和子目录第三步:在当前项目的根目录路径下面使用下述命令将虚拟环境的位置设置到当前项目路径下面poetry conf原创 2021-11-12 09:25:29 · 1048 阅读 · 0 评论 -
Python的第三方库fileType
Python的第三方库fileType在Pypi上的地址:https://pypi.org/project/filetypefileType库主要是用来判断文件的类型,在Poetry下的安装命令为:poetry add fileTypeimport filetypedef main(): kind = filetype.guess('tests/fixtures/sample.jpg') if kind is None: print('Cannot g原创 2021-12-24 18:41:03 · 2273 阅读 · 0 评论 -
Python的第三方库openpyxl
Python的第三方库openpyxl在Pypi上的地址:https://pypi.org/project/openpyxl/openpyxl是一个用于读写Excel 2010 xlsx文件的Python库,特别说明的是如果针对的是xls格式的Excel文件则不能使用该库。当前openpyxl的版本为3.0.9,openpyxl在Poetry下的安装命令为:poetry add openpyxl最简洁的xlsx格式的Excel文件的生成示例:import openpyxldat.原创 2022-01-16 16:45:43 · 1212 阅读 · 0 评论 -
Python的第三方库pandas
1.pandas的介绍pandas是Python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,目前由专注于Python数据包开发的PyData开发团队继续开发和维护,属于PyData项目的一部分。pandas最初被作为金融数据分析工具而开发出来,因此pandas为时间序列分析提供了很好的支持。 pandas的名称来自于面板数据(panel data)和Python数据分析(data analysis)。pandas 是基于NumP原创 2022-03-29 23:56:51 · 2098 阅读 · 0 评论