笔记·Python的一些琐碎
前言
阅读《Python从入门到精通》时产生的笔记,部分以及掌握的知识点或者是不常用知识点会被省略
Python格言
索引
赋值操作符
运算符 | 说 明 | 用法举例 | 等价形式 |
---|---|---|---|
= | 最基本的赋值运算 | x = y | x = y |
+= | 加赋值 | x += y | x = x + y |
-= | 减赋值 | x -= y | x = x - y |
*= | 乘赋值 | x *= y | x = x * y |
/= | 除赋值 | x /= y | x = x / y |
%= | 取余数赋值 | x %= y | x = x % y |
**= | 幂赋值 | x **= y | x = x ** y |
//= | 取整数赋值 | x //= y | x = x // y |
&= | 按位与赋值 | x &= y | x = x & y |
|= | 按位或赋值 | x |= y | x = x | y |
^= | 按位异或赋值 | x ^= y | x = x ^ y |
<<= | 左移赋值 | x <<= y | x = x << y,这里的 y 指的是左移的位数 |
>>= | 右移赋值 | x >>= y | x = x >> y,这里的 y 指的是右移的位数 |
关键字in和is
长度,最小值,最大值和求和
列表的一些操作
添加&删除
其他
字典的一些操作
集合
列表推导式
列表生成式
函数
默认参数
可变参数
文档字符串
函数注释
main.py
匿名函数
类
私有属性
输出:
Python内建异常
BaseExceptiona 所有异常的基类
SystemExitb python 解释器请求退出
KeyboardInterruptc 用户中断执行(通常是输入^C)
Exceptiond 常规错误的基类
StopIteratione 迭代器没有更多的值
GeneratorExita 生成器(generator)发生异常来通知退出
SystemExith Python 解释器请求退出
StandardErrorg 所有的内建标准异常的基类
ArithmeticErrord 所有数值计算错误的基类
FloatingPointErrord 浮点计算错误
OverflowError 数值运算超出最大限制
ZeroDivisionError 除(或取模)零 (所有数据类型)
AssertionErrord 断言语句失败
AttributeError 对象没有这个属性
EOFError 没有内建输入,到达 EOF 标记
EnvironmentErrord 操作系统错误的基类
IOError 输入/输出操作失败
OSErrord 操作系统错误
WindowsErrorh Windows 系统调用失败
ImportError 导入模块/对象失败
KeyboardInterruptf 用户中断执行(通常是输入^C)
LookupErrord 无效数据查询的基类
IndexError 序列中没有没有此索引(index)
KeyError 映射中没有这个键
MemoryError 内存溢出错误(对于 Python 解释器不是致命的)
NameError 未声明/初始化对象 (没有属性)
UnboundLocalErrorh 访问未初始化的本地变量
ReferenceErrore 弱引用(Weak reference)试图访问已经垃圾回收了的对象
RuntimeError 一般的运行时错误
NotImplementedErrord 尚未实现的方法
SyntaxError Python 语法错误
IndentationErrorg 缩进错误
TabErrorg Tab 和空格混用
SystemError 一般的解释器系统错误
TypeError 对类型无效的操作
ValueError 传入无效的参数
UnicodeErrorh Unicode 相关的错误
UnicodeDecodeErrori Unicode 解码时的错误
UnicodeEncodeErrori Unicode 编码时错误
UnicodeTranslateErrorf Unicode 转换时错误
Warningj 警告的基类
DeprecationWarningj 关于被弃用的特征的警告
FutureWarningi 关于构造将来语义会有改变的警告
OverflowWarningk 旧的关于自动提升为长整型(long)的警告
PendingDeprecationWarningi 关于特性将会被废弃的警告
RuntimeWarningj 可疑的运行时行为(runtime behavior)的警告
SyntaxWarningj 可疑的语法的警告
UserWarningj 用户代码生成的警告
finally子句
运行结果:
再来一次,这次我们不设置a变量
输出
标准库
Python中自带的一些库
sys
识别操作系统
我们会用到sys.platform
来识别操作系统
win32代表的是Windows系统(包括但不限于x32和x64体系版本)
Linux->linux
Mac OS X->darwin
处理命令行参数
我们会用到sys.argv
learn.py:
cmd:
你可以看到列表的第一个元素是我们的py文件名,第二个开始才是我们运行时指定的参数的内容
如果用Vscode直接运行learn.py呢?
您可以看到它返回了文件路径,说明了列表中的元素和命令行中输入的明亮有关
退出程序
我们会用到sys.exit
但是我们更常用的是exit()
os
获取当前文件所在目录
运行结果:
可以看到,Python中自带的变量__file__
是Py文件的路径(包括文件名),而os.path.dirname(__file__)
返回的是不带文件名的版本
获取/切换当前路径
重命名文件
a.text被重命名为b.txt
查看指定的路径是否存在
判断给出的路径是否是一个文件
反之,我们可以使用
创建一个文件夹
创建多个文件夹
random
文件
文件模式
用open打开文件时的mode:
文件格式
t:以文本格式打开文件(默认)。一般用于文本文件,如:txt。
b:以二进制格式打开文件。一般用于非文本文件,如:图片。
这一类参数可以与其它的模式参数组合使用,用于指定打开文件的格式。
读写模式
r:以只读方式打开文件(默认模式)。文件指针定位在文件头的位置。如果文件不存在会报错。
w:以只写方式打开文件。如果文件存在,则打开文件,清空文件内容,从文件头开始编辑;如果文件不存在,则创建新文件,打开编辑。
a:以追加方式打开文件,同样是只写,不允许进行读操作。如果文件存在,则打开文件,将文件指针定位到文件尾。因此,新的内容是追加在已有内容之后。如果文件不存在,则创建新文件进行写入。
+:打开一个文件进行更新(可读写)。注意:该模式不能单独使用,需要与r/w/a组合使用。文件指针的位置取决于另一个组合参数。
组合模式
r+:打开一个文件用于读写。如果文件存在,则打开文件,将文件指针定位在文件头,新写入的内容在原有内容的前面;如果文件不存在会报错。
w+:打开一个文件用于读写。如果文件存在,则打开文件,清空原有内容,进入编辑模式;如果文件不存在,则创建一个新文件进行读写操作。
a+:以追加模式打开一个文件用于读写。如果文件存在,则打开文件,将文件指针定位在文件尾,新写入的内容在原有内容的后面;如果文件不存在,则创建一个新文件用于读写。
所有上面这些模式默认都是t——文本模式,如果要以二进制模式打开,需要加上参数b,如:rb、rb+、wb、wb+、ab、ab+。
在了解了各种模式参数的具体用法后,根据您要打开的文件类型,以及打开文件后的操作类型来选用正确的mode参数即可。
按行读文件
我们会用到x.readline
或者是x.readlines
可以看到,单次只能读取一行
而用到x.readlines时会返回一个列表
上述的方法都会保留换行符,可以用for遍历列表中的元素再用i.split
方法去掉字符串后再生成一个新的列表
按行写文件
我们会用到x.writelines
方法
你也可以使用字符串按行写文件
时间和日期
时间日期格式化符号
用于格式化时间日期:
- %y 两位数的年份表示(00-99)
- %Y 四位数的年份表示(000-9999)
- %m 月份(01-12)
- %d 月内中的一天(0-31)
- %H 24小时制小时数(0-23)
- %I 12小时制小时数(01-12)
- %M 分钟数(00=59)
- %S 秒(00-59)
- %a 本地简化星期名称
- %A 本地完整星期名称
- %b 本地简化的月份名称
- %B 本地完整的月份名称
- %c 本地相应的日期表示和时间表示
- %j 年内的一天(001-366)
- %p 本地A.M.或P.M.的等价符
- %U 一年中的星期数(00-53)星期天为星期的开始
- %w 星期(0-6),星期天为星期的开始
- %W 一年中的星期数(00-53)星期一为星期的开始
- %x 本地相应的日期表示
- %X 本地相应的时间表示
- %Z 当前时区的名称
- %% %号本身
- %f 毫秒
获取当前时间
计算程序运行时间
输出结果:
加密与解密
MD5加密
Base64加解密
获取目录
运行目录(cmd)
Py文件目录
EXE文件目录
运行结果(.py)
故在非EXE中调试时,获取的是Python.exe所在位置
获取某文件的文件名并拆分
拆分字符串
当前时间获取
计算时间差
从XML提取信息
temp.xml
:
未经格式化:
经格式化
Python源码:
多线程运行任务
给图片插入句子
打开指定网站
注册表
随机从txt中读取值
查找图片并扫描其二维码
图片转码
使用字典方法实现switch,改掉叠if杀人书的习惯
进度条显示
解压zip压缩包
遍历文件夹中的所有文件并重命名
requirements.txt
用于指示程序所用第三方库
生成
使用
管理员权限获取
注意: 无法在Debug中调试该项,请直接通过文件运行