Python笔记


Vs code 扩展 Python语言支持:	Pythn扩展AI编程助手: 		Fitten Code : Faster and Better AI Assistant 扩展

# 创建虚拟环境(命名为'.venv'是常见约定)
python3 -m venv .venv
python -m venv --system-site-packages .venv(继承系统环境)
激活虚拟环境 Windows
.venv\Scripts\activate
linux
source .venv/bin/activate
导出依赖
(.venv) pip freeze > requirements.txt
从文件安装依赖
(.venv) pip install -r requirements.txt
退出虚拟环境
deactivate
删除虚拟环境
# 确保已退出环境
deactivate
# 删除目录
rm -rf .venv  # Linux/macOS
del /s /q .venv  # Windows (命令提示符)



默认情况下,Python3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串
# -*- coding: cp-1252 -*-

类别	关键字	说明
逻辑值	True	布尔真值
	False	布尔假值
	None	表示空值或无值
逻辑运算	and	逻辑与运算
	or	逻辑或运算
	not	逻辑非运算
条件控制	if	条件判断语句
	elif	否则如果(else if 的缩写)
	else	否则分支
循环控制	for	迭代循环
	while	条件循环
	break	跳出循环
	continue	跳过当前循环的剩余部分,进入下一次迭代
异常处理	try	尝试执行代码块
	except	捕获异常
	finally	无论是否发生异常都会执行的代码块
	raise	抛出异常
函数定义	def	定义函数
	return	从函数返回值
	lambda	创建匿名函数
类与对象	class	定义类
	del	删除对象引用
模块导入	import	导入模块
	from	从模块导入特定部分
	as	为导入的模块或对象创建别名
作用域	global	声明全局变量
	nonlocal	声明非局部变量(用于嵌套函数)
异步编程	async	声明异步函数
	await	等待异步操作完成
其他	assert	断言,用于测试条件是否为真
	in	检查成员关系
	is	检查对象身份(是否是同一个对象)
	pass	空语句,用于占位
	with	上下文管理器,用于资源管理
	yield	从生成器函数返回值


数据结构。

列表
Python中列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和元组不能。
以下是 Python 中列表的方法:
方法	描述
list.append(x)	把一个元素添加到列表的结尾,相当于 a[len(a):] = [x]。
list.extend(L)	通过添加指定列表的所有元素来扩充列表,相当于 a[len(a):] = L。
list.insert(i, x)	在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,例如 a.insert(0, x) 会插入到整个列表之前,而 a.insert(len(a), x) 相当于 a.append(x) 。
list.remove(x)	删除列表中值为 x 的第一个元素。如果没有这样的元素,就会返回一个错误。
list.pop([i])	从列表的指定位置移除元素,并将其返回。如果没有指定索引,a.pop()返回最后一个元素。元素随即从列表中被移除。(方法中 i 两边的方括号表示这个参数是可选的,而不是要求你输入一对方括号,你会经常在 Python 库参考手册中遇到这样的标记。)
list.clear()	移除列表中的所有项,等于del a[:]。
list.index(x)	返回列表中第一个值为 x 的元素的索引。如果没有匹配的元素就会返回一个错误。
list.count(x)	返回 x 在列表中出现的次数。
list.sort()	对列表中的元素进行排序。
list.reverse()	倒排列表中的元素。
list.copy()	返回列表的浅复制,等于a[:]。

文件


open() 方法
Python open() 方法用于打开一个文件,并返回文件对象。
在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。
注意:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。
open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。
open(file, mode='r')完整的语法格式为:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)参数说明:
●file: 必需,文件路径(相对或者绝对路径)。
●mode: 可选,文件打开模式
●buffering: 设置缓冲
●encoding: 一般使用utf8
●errors: 报错级别
●newline: 区分换行符
●closefd: 传入的file参数类型
●opener: 设置自定义开启器,开启器的返回值必须是一个打开的文件描述符。
mode 参数有:
模式	描述
t	文本模式 (默认)。
x	写模式,新建一个文件,如果该文件已存在则会报错。
b	二进制模式。
+	打开一个文件进行更新(可读可写)。
U	通用换行模式(Python 3 不支持)。
r	以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb	以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+	打开一个文件用于读写。文件指针将会放在文件的开头。
rb+	以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w	打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb	以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+	打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+	以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a	打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab	以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+	打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+	以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
默认为文本模式,如果要以二进制模式打开,加上 b 。



file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数:
序号	方法及描述
1	https://www.runoob.com/python3/python3-file-close.html 
关闭文件。关闭后文件不能再进行读写操作。
2	https://www.runoob.com/python3/python3-file-flush.html 
刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
3	https://www.runoob.com/python3/python3-file-fileno.html 
返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。
4	https://www.runoob.com/python3/python3-file-isatty.html 
如果文件连接到一个终端设备返回 True,否则返回 False。
5	https://www.runoob.com/python3/python3-file-next.html 
Python 3 中的 File 对象不支持 next() 方法。
返回文件下一行。
6	https://www.runoob.com/python3/python3-file-read.html 
从文件读取指定的字节数,如果未给定或为负则读取所有。
7	https://www.runoob.com/python3/python3-file-readline.html 
读取整行,包括 "\n" 字符。
8	https://www.runoob.com/python3/python3-file-readlines.html 
读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比 sizeint 较大, 因为需要填充缓冲区。
9	https://www.runoob.com/python3/python3-file-seek.html 
移动文件读取指针到指定位置
10	https://www.runoob.com/python3/python3-file-tell.html 
返回文件当前位置。
11	https://www.runoob.com/python3/python3-file-truncate.html 
从文件的首行首字符开始截断,截断文件为 size 个字符,无 size 表示从当前位置截断;截断之后后面的所有字符被删除,其中 windows 系统下的换行代表2个字符大小。
12	https://www.runoob.com/python3/python3-file-write.html 
将字符串写入文件,返回的是写入的字符长度。
13	https://www.runoob.com/python3/python3-file-writelines.html 
向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。

os 模块提供了非常丰富的方法用来处理文件和目录。常用的方法如下表所示:
序号	方法及描述
1	https://www.runoob.com/python3/python3-os-access.html 

检验权限模式
2	https://www.runoob.com/python3/python3-os-chdir.html 

改变当前工作目录
3	https://www.runoob.com/python3/python3-os-chflags.html 

设置路径的标记为数字标记。
4	https://www.runoob.com/python3/python3-os-chmod.html 

更改权限
5	https://www.runoob.com/python3/python3-os-chown.html 

更改文件所有者
6	https://www.runoob.com/python3/python3-os-chroot.html 

改变当前进程的根目录
7	https://www.runoob.com/python3/python3-os-close.html 

关闭文件描述符 fd
8	https://www.runoob.com/python3/python3-os-closerange.html 

关闭所有文件描述符,从 fd_low (包含) 到 fd_high (不包含), 错误会忽略
9	https://www.runoob.com/python3/python3-os-dup.html 

复制文件描述符 fd
10	https://www.runoob.com/python3/python3-os-dup2.html 

将一个文件描述符 fd 复制到另一个 fd2
11	https://www.runoob.com/python3/python3-os-fchdir.html 

通过文件描述符改变当前工作目录
12	https://www.runoob.com/python3/python3-os-fchmod.html 

改变一个文件的访问权限,该文件由参数fd指定,参数mode是Unix下的文件访问权限。
13	https://www.runoob.com/python3/python3-os-fchown.html 

修改一个文件的所有权,这个函数修改一个文件的用户ID和用户组ID,该文件由文件描述符fd指定。
14	https://www.runoob.com/python3/python3-os-fdatasync.html 

强制将文件写入磁盘,该文件由文件描述符fd指定,但是不强制更新文件的状态信息。
15	https://www.runoob.com/python3/python3-os-fdopen.html 

通过文件描述符 fd 创建一个文件对象,并返回这个文件对象
16	https://www.runoob.com/python3/python3-os-fpathconf.html 

返回一个打开的文件的系统配置信息。name为检索的系统配置的值,它也许是一个定义系统值的字符串,这些名字在很多标准中指定(POSIX.1, Unix 95, Unix 98, 和其它)。
17	https://www.runoob.com/python3/python3-os-fstat.html 

返回文件描述符fd的状态,像stat()。
18	https://www.runoob.com/python3/python3-os-fstatvfs.html 

返回包含文件描述符fd的文件的文件系统的信息,Python 3.3 相等于 statvfs()。
19	https://www.runoob.com/python3/python3-os-fsync.html 

强制将文件描述符为fd的文件写入硬盘。
20	https://www.runoob.com/python3/python3-os-ftruncate.html 

裁剪文件描述符fd对应的文件, 所以它最大不能超过文件大小。
21	https://www.runoob.com/python3/python3-os-getcwd.html 

返回当前工作目录
22	https://www.runoob.com/python3/python3-os-getcwdb.html 

返回一个当前工作目录的Unicode对象
23	https://www.runoob.com/python3/python3-os-isatty.html 

如果文件描述符fd是打开的,同时与tty(-like)设备相连,则返回true, 否则False。
24	https://www.runoob.com/python3/python3-os-lchflags.html 

设置路径的标记为数字标记,类似 chflags(),但是没有软链接
25	https://www.runoob.com/python3/python3-os-lchmod.html 

修改连接文件权限
26	https://www.runoob.com/python3/python3-os-lchown.html 

更改文件所有者,类似 chown,但是不追踪链接。
27	https://www.runoob.com/python3/python3-os-link.html 

创建硬链接,名为参数 dst,指向参数 src
28	https://www.runoob.com/python3/python3-os-listdir.html 

返回path指定的文件夹包含的文件或文件夹的名字的列表。
29	https://www.runoob.com/python3/python3-os-lseek.html 

设置文件描述符 fd当前位置为pos, how方式修改: SEEK_SET 或者 0 设置从文件开始的计算的pos; SEEK_CUR或者 1 则从当前位置计算; os.SEEK_END或者2则从文件尾部开始. 在unix,Windows中有效
30	https://www.runoob.com/python3/python3-os-lstat.html 

像stat(),但是没有软链接
31	https://www.runoob.com/python3/python3-os-major.html 

从原始的设备号中提取设备major号码 (使用stat中的st_dev或者st_rdev field)。
32	https://www.runoob.com/python3/python3-os-makedev.html 

以major和minor设备号组成一个原始设备号
33	https://www.runoob.com/python3/python3-os-makedirs.html 

递归文件夹创建函数。像mkdir(), 但创建的所有intermediate-level文件夹需要包含子文件夹。
34	https://www.runoob.com/python3/python3-os-minor.html 

从原始的设备号中提取设备minor号码 (使用stat中的st_dev或者st_rdev field )。
35	https://www.runoob.com/python3/python3-os-mkdir.html 

以数字mode的mode创建一个名为path的文件夹.默认的 mode 是 0777 (八进制)。
36	https://www.runoob.com/python3/python3-os-mkfifo.html 

创建命名管道,mode 为数字,默认为 0666 (八进制)
37	https://www.runoob.com/python3/python3-os-mknod.html 
创建一个名为filename文件系统节点(文件,设备特别文件或者命名pipe)。
38	https://www.runoob.com/python3/python3-os-open.html 

打开一个文件,并且设置需要的打开选项,mode参数是可选的
39	https://www.runoob.com/python3/python3-os-openpty.html 

打开一个新的伪终端对。返回 pty 和 tty的文件描述符。
40	https://www.runoob.com/python3/python3-os-pathconf.html 

返回相关文件的系统配置信息。
41	https://www.runoob.com/python3/python3-os-pipe.html 

创建一个管道. 返回一对文件描述符(r, w) 分别为读和写
42	https://www.runoob.com/python3/python3-os-popen.html 

从一个 command 打开一个管道
43	https://www.runoob.com/python3/python3-os-read.html 

从文件描述符 fd 中读取最多 n 个字节,返回包含读取字节的字符串,文件描述符 fd对应文件已达到结尾, 返回一个空字符串。
44	https://www.runoob.com/python3/python3-os-readlink.html 

返回软链接所指向的文件
45	https://www.runoob.com/python3/python3-os-remove.html 

删除路径为path的文件。如果path 是一个文件夹,将抛出OSError; 查看下面的rmdir()删除一个 directory。
46	https://www.runoob.com/python3/python3-os-removedirs.html 

递归删除目录。
47	https://www.runoob.com/python3/python3-os-rename.html 

重命名文件或目录,从 src 到 dst
48	https://www.runoob.com/python3/python3-os-renames.html 

递归地对目录进行更名,也可以对文件进行更名。
49	https://www.runoob.com/python3/python3-os-rmdir.html 

删除path指定的空目录,如果目录非空,则抛出一个OSError异常。
50	https://www.runoob.com/python3/python3-os-stat.html 

获取path指定的路径的信息,功能等同于C API中的stat()系统调用。
51	https://www.runoob.com/python3/python3-os-stat_float_times.html 
决定stat_result是否以float对象显示时间戳
52	https://www.runoob.com/python3/python3-os-statvfs.html 

获取指定路径的文件系统统计信息
53	https://www.runoob.com/python3/python3-os-symlink.html 

创建一个软链接
54	https://www.runoob.com/python3/python3-os-tcgetpgrp.html 

返回与终端fd(一个由os.open()返回的打开的文件描述符)关联的进程组
55	https://www.runoob.com/python3/python3-os-tcsetpgrp.html 

设置与终端fd(一个由os.open()返回的打开的文件描述符)关联的进程组为pg。
56	os.tempnam([dir[, prefix]])

Python3 中已删除。返回唯一的路径名用于创建临时文件。
57	os.tmpfile()

Python3 中已删除。返回一个打开的模式为(w+b)的文件对象 .这文件对象没有文件夹入口,没有文件描述符,将会自动删除。
58	os.tmpnam()

Python3 中已删除。为创建一个临时文件返回一个唯一的路径
59	https://www.runoob.com/python3/python3-os-ttyname.html 

返回一个字符串,它表示与文件描述符fd 关联的终端设备。如果fd 没有与终端设备关联,则引发一个异常。
60	https://www.runoob.com/python3/python3-os-unlink.html 

删除文件路径
61	https://www.runoob.com/python3/python3-os-utime.html 

返回指定的path文件的访问和修改的时间。
62	https://www.runoob.com/python3/python3-os-walk.html 

输出在文件夹中的文件名通过在树中游走,向上或者向下。
63	https://www.runoob.com/python3/python3-os-write.html 

写入字符串到文件描述符 fd中. 返回实际写入的字符串长度
64	https://www.runoob.com/python3/python3-os-path.html 

获取文件的属性信息。
65	https://www.runoob.com/python/os-write.html https://www.runoob.com/python3/python3-os-pardir.html 

获取当前目录的父目录,以字符串形式显示目录名。
66	https://www.runoob.com/python3/python3-os-replace.html 

重命名文件或目录。
67	https://www.runoob.com/python3/python3-os-startfile.html 

类的专有方法:
__init__ : 构造函数,在生成对象时调用
__del__ : 析构函数,释放对象时使用
__repr__ : 打印,转换
__setitem__ : 按照索引赋值
__getitem__: 按照索引获取值
__len__: 获得长度
__cmp__: 比较运算
__call__: 函数调用
__add__: 加运算
__sub__: 减运算
__mul__: 乘运算
__truediv__: 除运算
__mod__: 求余运算
__pow__: 乘方



评论 (0)

发表评论