python
文章平均质量分 71
Kwoky
这个作者很懒,什么都没留下…
展开
-
Python常见的运行时错误
Python常见的运行时错误1)SyntaxError :invalid syntax原因:忘记在 if , elif , else , for , while , class ,def 声明末尾添加该错误将发生在类似如下代码中:if spam == 42print('Hello!')2) SyntaxError: invalid syntax原因:使用 = 而不是 === 是赋值操作符而 == 是等于比较操作。该错误发生在如下代码中:if spam = 42:print('He原创 2021-12-20 15:04:26 · 2200 阅读 · 0 评论 -
UTF-8编码占几个字节?
来源:https://blog.csdn.net/bluetjs/article/details/52936943占2个字节的:带有附加符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文及它拿字母则需要二个字节编码占3个字节的:基本等同于GBK,含21000多个汉字占4个字节的:中日韩超大字符集里面的汉字,有5万多个一个utf8数字占1个字节一个utf8英文字母占1个字节少数是汉字每个占用3个字节,多数占用4个字节。占用3个字节的范围U+2E80 -原创 2021-12-08 09:46:42 · 9183 阅读 · 0 评论 -
Python实现文件自动归类
Python实现文件自动归类import osimport shutilpath = "./"file_ls = os.listdir(path) # 列出当前文件夹的所有文件for f in file_ls: folder_name = path + f.split(".")[-1] print(folder_name) # 如果不存在改目录,先创建,再移动 if not os.path.exists(folder_name):...原创 2021-11-06 12:22:54 · 885 阅读 · 0 评论 -
Python实现桌面壁纸设置
Python实现桌面壁纸设置思路1、通过bing每日壁纸接口,获取图片地址2、保存图片到绝对路径3、设置该图片为壁纸4、批处理壁纸自动切换第一、获取图片地址微软bing每日壁纸API接口https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN每次最多能取8张,只能取最近的16张图片返回结果:{images:[ { startdate:..原创 2021-10-31 13:01:31 · 3331 阅读 · 0 评论 -
Python包中__init__.py文件的作用和用法
在Python工程中,我们经常可以看到带有“__init__.py”文件的目录,在PyCharm中,带有这个文件的目录被认为是Python的包目录,与目录的图标有不一样的显示。如下图所示, dir_example是一个空白目录,图标是个文件夹图标,而init_example下有_init__.py文件,其图标是一个包。那么这个文件的作用是什么,我们平时如何使用呢?一、__init__.py文件简介二、__init__.py文件的使用案例2.1、没有__init__.py文件...原创 2021-10-20 17:14:04 · 22813 阅读 · 6 评论 -
Python 3.10 正式发布!
2021年10月4日 Python 终于正式发布了 3.10 版本。全新六大特点 match和case 语法 更严谨的 zip 新的类型标注特性 重要的弃用、移除或限制,如PEP 632,弃用 distutils 模块 新的特性:带圆括号的上下文管理器 更友好的报错提示 1 match和case 语法Python 3.10这个版本,最受关注的应该就是结构模式匹配——match-case。下边是最简单的一个 mat...原创 2021-10-12 10:10:43 · 2451 阅读 · 3 评论 -
Python eval()和exec()函数
Python eval()和exec()函数eval() 和 exec() 函数都属于 Python 的内置函数。eval() 和 exec() 函数的功能是相似的,都可以执行一个字符串形式的Python代码,相当于一个 Python 的解释器。二者不同之处在于,eval() 执行完要返回结果,而 exec() 执行完不返回结果。用法eval() 函数的语法格式为:eval(source, globals=None, locals=None, /)而 exec() 函数的语法格式如下:原创 2021-10-05 22:46:08 · 1283 阅读 · 0 评论 -
用 Python 批量加水印
用 Python 批量加水印有时候,为了保护版权,需要给作品中的图片加上水印。一种是把水印(logo)加在图片的一个角落,更厉害的一种是,水印在整个图上有很多,有个轻微的透明度,更安全。PYTHON自动化利用Github上开源工具,用Python给图片批量加上水印。地址:https://github.com/2Dou/watermarker工具特点可以设置字体(大小)可以设置角度可以设置透明度可以设置颜色可以批量处理可以设置水印的间隔注意:把文原创 2021-09-03 17:55:02 · 1269 阅读 · 0 评论 -
itertools库的使用方法
itertools库迭代器(生成器)在Python中是一种很常用也很好用的数据结构,比起列表(list)来说,迭代器最大的优势就是延迟计算,按需使用,从而提高开发体验和运行效率,以至于在Python 3中map,filter等操作返回的不再是列表而是迭代器。itertools中的函数大多是返回各种迭代器对象,其中很多函数的作用我们平时要写很多代码才能达到,而在运行效率上反而更低,毕竟人家是系统库。itertools.accumulate简单来说就是累加。import iterto..转载 2021-08-19 20:31:51 · 1451 阅读 · 0 评论 -
python中使用yaml作配置文件
yaml在python中通常被用作配置文件,比如docker inspect 的信息就可以很好的存放在yaml中。优点可读性好。和脚本语言的交互性好。使用实现语言的数据类型。模型化的信息结构。易于实现,容易编写。基本语法1、严格区分大小写2、使用空格缩进表示层级关系,不能使用tab,缩进的数量不限,但是同一缩进左侧对齐3、#表示注释4、yaml支持列表和字典,也支持纯量,即就是单个的值,例如布尔值,整数,浮点数,时间,日期等。5、- value,表示内容为..原创 2021-08-09 22:02:35 · 3570 阅读 · 0 评论 -
干货丨Python常用的1000+库大盘点
Python常用库Chardet字符编码探测器,可以自动检测文本、网页、xml的编码。colorama主要用来给文本添加各种颜色,并且非常简单易用。Prettytable主要用于在终端或浏览器端构建格式化的输出。difflib,[Python]标准库,计算文本差异Levenshtein,快速计算字符串相似度。fuzzywuzzy,字符串模糊匹配。esmre,正则表达式的加速器。shortuuid,一组简洁URL/UUID函数库。ftfy,Unicode文本工具7uni原创 2021-03-23 17:45:58 · 2280 阅读 · 0 评论 -
python的调试方法
python的调试方法程序能一次写完并正常运行的概率很小,基本不超过1%。总会有各种各样的bug需要修正。有的bug很简单,看看错误信息就知道,有的bug很复杂,我们需要知道出错时,哪些变量的值是正确的,哪些变量的值是错误的,因此,需要一整套调试程序的手段来修复bug。方法一:print用print把可能有问题的变量打印出来看看,这种方法最是简单直接粗暴有效了。def foo(s):n = int(s)print('>>> n = %d' % n)r...原创 2021-03-05 16:52:16 · 2511 阅读 · 0 评论 -
python uuid
python uuid1. 背景知识: UUID: 通用唯一标识符 ( Universally Unique Identifier ), 对于所有的UUID它可以保证在空间和时间上的唯一性. 它是通过MAC地址, 时间戳, 命名空间, 随机数, 伪随机数来保证生成ID的唯一性,有着固定的大小( 128 bit ). 它的唯一性和一致性特点使得可以无需注册过程就能够产生一个新的UUID. UUID可以被用作多种用途, 既可以用来短时间内标记一个对象, 也可以可靠的辨别网络中的持久性对象. ...原创 2021-02-26 13:36:57 · 2023 阅读 · 0 评论 -
Python获取屏幕截图的方法
Python获取屏幕截图的方法PIL中的ImageGrab模块from PIL import ImageGrabimg = ImageGrab.grab(bbox=(100, 161, 1141, 610))img.save('./images/img_1.jpg')使用PIL中的ImageGrab模块简单,但是效率有点低,截屏一次需0.5s。PyQtPyQt比调用windows API简单很多,而且有windows API的很多优势,比如速度快,可以指定获取的窗口,即使窗口被.原创 2021-02-03 19:01:58 · 2862 阅读 · 0 评论 -
优先级队列的实现
优先级队列的实现堆(heap)数据结构是一种优先队列。优先队列让你能够以任意顺序添加对象,并随时(可能是在两次添加对象之间)找出(并删除)最小的元素。相比于列表方法min,这样做的效率要高得多。使用heapq模块可以实现一个按优先级排序的队列,在这个队列上每次pop操作总是返回优先级最高的那个元素。它包含6个函数,其中前4个与堆操作直接相关。必须使用列表来表示堆对象本身。模块heapq中一些重要的函数。 函 数 描 述...原创 2021-01-29 19:13:48 · 2784 阅读 · 0 评论 -
python3.9操纵excel遇到的问题
python3.9操纵excel的问题问题一:Excel xlsx file; not supported原因:xlrd更新到了2.0.1版本,只支持.xls文件,不支持.xlsx。解决办法:安装旧版本pip install xlrd==1.2.0问题二:ModuleNotFoundError: No module named 'openpyxl'安装:openpyxlpip install openpyxl问题三:AttributeError: 'ElementTree'原创 2021-01-08 18:17:48 · 3317 阅读 · 1 评论 -
python使用下划线分割数字,提高可读性
这个是Python 3.6以上版本的新增特性,可以用下划线来分割数字以提高可读性。dec_base = 1_000_000bin_base = 0b_1111_0000hex_base = 0x_1234_abcdprint(dec_base) # 1000000print(bin_base) # 240print(hex_base) # 305441741运行结果如下:1000000240305441741...原创 2021-01-04 18:32:32 · 2736 阅读 · 0 评论 -
python 三元表达式进阶
python 三元表达式进阶简单的for...[if]...语句Python中,for...[if]...语句一种简洁的构建List的方法,从for给定的List中选择出满足if条件的元素组成新的List,其中if是可以省略的。>>> a=[12,3,4,6,7,13,21]>>> newList =[x for x in a]>>> newList[12,3,4,6,7,13,21]>>> newList2原创 2021-01-04 13:30:47 · 3155 阅读 · 1 评论 -
Python定时任务库APScheduler
Python定时任务库APScheduler简介APScheduler(Advanced Python Scheduler)是一个轻量级的Python定时任务调度框架。APScheduler有三个内置的调度系统,其中包括:cron式调度(可选开始/结束时间)基于间隔的执行(以偶数间隔运行作业,也可以选择开始/结束时间)一次性延迟执行任务(在指定的日期/时间内运行作业一次)支持的后端存储作业APScheduler可以任意混合和匹配调度系统和作业存储的后端,其中支持后端存储作业包原创 2020-12-08 14:47:07 · 2585 阅读 · 0 评论 -
python获取剪切板上的内容
importwin32clipboardaswimportwin32condefget_text():w.OpenClipboard()d=w.GetClipboardData(win32con.CF_TEXT)w.CloseClipboard()returnd.decode('GBK')defset_text(aString):w.OpenClipboard()w.EmptyClipboard()w.SetCli...原创 2020-12-04 14:41:39 · 2589 阅读 · 0 评论 -
shutil模块高阶文件操作
shutil模块高阶文件操作shutil 模块提供了一系列对文件和文件集合的高阶操作。 特别是提供了一些支持文件拷贝和删除的函数。 对于单个文件的操作,请参阅 os 模块。目录和文件操作文件内容拷贝shutil.copyfileobj(fsrc, fdst[, length])将fsrc的内容拷贝到fdst。fsrc:源文件对象fdst:目标文件对象。length:整数值,如果给出则为缓冲区大小。为负值表示拷贝数据时不对源数据进行分块循环处理;默认情况下会分块读取数据以避免不原创 2020-11-27 14:14:01 · 2728 阅读 · 1 评论 -
具名元组namedtuple
具名元组namedtuple因为元组的局限性:不能为元组内部的数据进行命名,所以往往我们并不知道一个元组所要表达的意义,所以在这里引入了 collections.namedtuple 这个工厂函数,来构造一个带字段名的元组。具名元组的实例和普通元组消耗的内存一样多,因为字段名都被存在对应的类里面。这个类跟普通的对象实例比起来也要小一些,因为 Python 不会用 __dict__ 来存放这些实例的属性。namedtuple 对象的定义如以下格式:collections.namedtuple(ty原创 2020-11-20 16:53:03 · 2346 阅读 · 0 评论 -
Python排序
Python排序Python中有内置函数sorted(), list(列表)中也有函数list.sort()都可以进行排序。区别list.sort()是对已经存在的列表进行操作,进而可以改变进行操作的列表。而内建函数sorted可以对所有可迭代类型进行排序,返回的是一个新的list。sorted函数sorted可以对所有可迭代类型进行排序,并且返回新的已排序的列表。语法如下:sorted(iterable, cmp=None, key=None, reverse=False) --&原创 2020-11-16 11:04:53 · 15416 阅读 · 0 评论 -
Python实现定时任务
Python实现定时任务工作中可能需要周期性执行一些任务,俗称定时任务。Linux环境下,可以借助于系统自带的crontab完成定时任务。但是很多时候,开发人员可能并没有权限去操作crontab。而schedule是Python的轻量级定时任务解决方案,可以满足常定时采集数据,定时执行脚本程序等周期性任务需求。安装pip install schedule按照某个时间间隔每10分钟执行一次job函数schedule.every(10).minutes.do(test)每10秒.原创 2020-11-02 18:43:25 · 5480 阅读 · 0 评论 -
python字符串中包含大括号时怎么使用string的.format方法?
大括号是特殊转义字符,如果需要原始的大括号,用{{代替{, 用}}代替}, 如下:s = 'id=pc&offset={}&limit=20&strategy=1&ext={{%22pool%22:[%22high%22,%22top%22],%22is_filter%22:10,%22check_type%22:true}}'print(s.format(2))运行结果:id=pc&offset=2&limit=20&strate.原创 2020-10-27 17:49:38 · 4811 阅读 · 1 评论 -
python 抽象类、抽象方法的实现
python 抽象类、抽象方法的实现抽象基类提供了一种要求子类实现指定协议的方式,如果一个抽象基类要求实现指定的方法,而子类没有实现的话,当试图创建子类或者执行子类代码时会抛出异常。python 没有抽象类、接口的概念,所以要实现这种功能得abc.py 这个类库abc模块提供了一个抽象基类声明协议的机制,并且子类一定要提供了一个符合该协议的实现。from abc import ABCMeta, abstractmethodclass Task(metaclass = ABCMeta): .原创 2020-10-11 09:51:06 · 3186 阅读 · 0 评论 -
JupyterNotebook快捷键总结
快捷键模式切换Jupyter Notebook有两种mode:Enter:进入edit模式Esc:进入command模式Command快捷键A:在上方增加一个cellB:在下方增加一个cellX:剪切该cellC:复制该cellV:在该cell下方粘贴复制的cellShift-V:在该cell上方粘贴复制的cellL:隐藏、显示当前cell的代码行号shift-L:隐藏/显示所有cell的代码行号O:隐藏该cell的outputDD:删除这个ce.原创 2020-09-28 10:22:05 · 2628 阅读 · 0 评论 -
Python之协程
Python之协程用户态和内核态为了限制不同的程序之间的访问能力, 防止他们获取别的程序的内存数据, 或者获取外围设备的数据, 并发送到网络, CPU划分出两个权限等级 --用户态和内核态。内核态:cpu可以访问内存的所有数据,包括外围设备,例如硬盘,网卡,cpu也可以将自己从一个程序切换到另一个程序。用户态:只能受限的访问内存,且不允许访问外围设备,占用cpu的能力被剥夺,cpu资源可以被其他程序获取。yield实现任务切换+保存线程并发的本质:切换+保存状态。import .原创 2020-09-27 09:57:30 · 3717 阅读 · 1 评论 -
Python中return和yield的区别
Python中return和yield的区别return在函数中,结束该函数的运行,return 后面的代码块不会执行,返回该函数的执行结果。yield带有yield的函数是一个迭代器,函数返回某个值时,会停留在某个位置,返回函数值后,会在前面停留的位置继续执行,直到程序结束该对象可以迭代遍历和通过next()方法取出对象中的值。比较节约内存空间。保存的是生成数据的方式。可以达到随用随取的效果。代码分析看下面的程序:def foo(): print("starting...原创 2020-09-21 22:52:44 · 2683 阅读 · 0 评论 -
Jupyter Notebook主题皮肤安装设置
Jupyter Notebook主题皮肤安装设置主题皮肤库安装pip install jupyterthemes主题皮肤库命令Jupyter Notebook主题皮肤库都是(jt)开头,后面紧跟命令和值命令行选项的描述使用帮助:-h 主题列表: -l 主题名称安装: -t 代码的字体: -f 代码字体大小: -fs(默认值:11 ) Notebook 字体: -nf Notebook 字体大小: -nfs( 默认值: 13 ) Text/MD 单元格的字体: -t.原创 2020-09-18 13:48:50 · 3150 阅读 · 0 评论 -
binascii模块
binascii模块简介binascii模块包含很多在二进制和ASCII编码的二进制表示转换的方法。通常情况不会直接使用这些功能,而是使用像UU,base64编码,或BinHex封装模块。 binascii模块包含更高级别的模块使用的,用C语言编写的低级高效功能。包含的函数 函数 描述 a2b_uu(string) 将以ascii编码的一行数据转化为二进制,并且返回二进制数据. b2a_uu(da.原创 2020-09-14 10:32:38 · 3678 阅读 · 0 评论 -
为什么说 Python 是强类型语言?
为什么说 Python 是强类型语言?强类型语言强类型语言也称为强类型定义语言。是一种总是强制类型定义的语言,要求变量的使用要严格符合定义,所有变量都必须先定义后使用。 java、.NET、C++等都是强制类型定义的。一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。例如你有一个整数,如果不显式地进行转换,你不能将其视为一个字符串。弱类型语言与强类型定义相反,类型可以被忽略的语言的语言。VBScript是弱类型定义的。在VBScript中.原创 2020-09-10 09:32:14 · 4005 阅读 · 0 评论 -
python中经典类和新式类的区别
python中经典类和新式类的区别旧式类在Python 2及以前的版本中,不由任意内置类型派生出的类,则称之为“经典类”。反之,由任意内置类型派生出的类(只要一个内置类型位于类树的某个位置),都属于“新式类”,都会获得所有“新式类”的特性;新式类python在2.2版本中引入了descriptor功能,也正是基于这个功能实现了新式类(new-styel class)的对象模型, 同时解决了之前版本中经典类(classic class)中多重继承中的MRO(Method Resolutio原创 2020-09-03 14:58:21 · 2521 阅读 · 0 评论 -
Python异常的处理和检测
Python异常的处理和检测捕获异常在Python程序执行过程中发生的异常可以通过try语句来检测,可以把需要检测的语句放置在try块里面,try块里面的语句发生的异常都会被try语句检测到,并抛出异常给Python解释器,Python解释器会寻找能处理这一异常的代码,并把当前异常交给其处理。这一过程称为捕获异常。如果Python解释器找不到处理该异常的代码,Python解释器会终止该程序的执行。使用方式try-excepttry: 可能产生异常的代码块except [ (Er..原创 2020-08-31 17:38:17 · 2659 阅读 · 0 评论 -
pathlib模块详解
pathlib模块详解pathlib模块pathlib 模块的操作对象是各种操作系统中使用的路径“pure”类对字符串进行操作,不与实际的文件系统进行交互, 不关心路径是否真实有效。PurePath 类会将路径看做是一个普通的字符串,它可以将多个指定的字符串拼接成适用于当前操作系统的路径格式,同时还可以判断任意两个路径是否相等。 PurePosixPath 和 PureWindowsPath 是 PurePath 的子类,前者用于操作 UNIX(包括 Mac OS X)风格的路径,后者原创 2020-08-24 10:44:17 · 4180 阅读 · 0 评论 -
Python中format函数用法
Python中format函数用法format优点format是python2.6新增的格式化字符串的方法,相对于老版的%格式方法,它有很多优点。1.不需要理会数据类型的问题,在%方法中%s只能替代字符串类型2.单个参数可以多次输出,参数顺序可以不相同3.填充方式十分灵活,对齐方式十分强大4.官方推荐用的方式,%方式将会在后面的版本被淘汰填充位置填充(1)通过位置来填充字符串foramt会把参数按位置顺序来填充到字符串中,第一个参数是0,然后1 ……也可以不输入数原创 2020-08-17 16:42:21 · 22322 阅读 · 0 评论 -
Python对word文档进行操作
Python-docxPython-docx是专门针对于word文档的一个模块,只能操作docx 不能读取doc文件。在这里python-docx主要的功能是对docx文件进行操作,管理等。官方文档:https://python-docx.readthedocs.io/en/latest/index.html安装Python-docxpip install python-docx编辑word文档导入Document模块从 docx模块中,导入Document类,并实例..原创 2020-08-10 17:17:53 · 6081 阅读 · 0 评论 -
decimal模块
decimal借助整数来表示小数的方式解决了不精确的问题。1.Decimal创建可以传递给Decimal整型或者字符串参数,但不能是浮点数据,因为浮点数据本身就不准确。2.要从浮点数据转换为Decimal类型from decimal import *Decimal.from_float(12.222)# 结果为Decimal('12.2219999999999995310417943983338773250579833984375')3.通过设定有效数字,...原创 2020-07-30 09:16:30 · 2857 阅读 · 0 评论 -
Pycharm中使用Markdown
安装我的pycharm比较老了2017,其它版本应该也类似。PyCharm的Settings里面选择Plugins,搜索Markdown support如果搜到说明已经安装,如果没有,点击下面Install JetBrain plugin… 按钮,在打开的对话框中选择Markdowm support,Install。使用创建md的文件或者打开md的文件,可以直接看到效果Markdown基本语法一、标题在想要设置为标题的文字前面加#,几个#是几级标题,最多支持六..原创 2020-07-27 09:58:36 · 12733 阅读 · 0 评论 -
python浮点数四舍五入的问题的分析
python中round做四舍五入要说清楚并不容易。有一种奇进偶舍的说法并不准确。下面的例子就无法用奇进偶舍来解释:print(round(1.275,2))1.27原因分析float采用二进制编码描述浮点数。在二进制表示中,大多数有限位十进制小数无法使用有限位二进制进行精确表示。也就是说,有限位数的十进制小数,往往会变为无限位数的二进制小数。对不能使用有限位二进制小数表示的十进制有限位小数,在系统中存储的是这些十进制浮点数的近似值。在近似值中,分为进位和截断两种类型,近似误差一般在10e−原创 2020-07-17 17:28:41 · 3298 阅读 · 0 评论