本文档概述了 Python 标准库的关键模块、近期更新和重要功能。它作为标准库重要组件的指南,侧重于常用模块和近期 Python 版本中的显著变化。
有关使用 C API 通过 C 代码扩展 Python 的信息,请参阅 扩展开发与 C API。有关 Python 运行时核心的信息,请参阅 运行时核心。
Python 标准库被组织成逻辑类别,以满足不同的编程需求。
来源:Doc/whatsnew/3.13.rst59-186 Doc/library/pathlib.rst1-32 Doc/library/os.rst1-16 Doc/library/shutil.rst1-21
文件系统操作由几个相关模块处理,这些模块提供不同级别的抽象。
来源:Lib/pathlib/__init__.py1-47 Lib/glob.py1-33 Lib/shutil.py1-67 Lib/os.py1-7
pathlib 模块提供了一种直观、面向对象的文件系统路径操作方法,使路径操作更具可读性。
主要类
| 类 | 目的 | 主要功能 |
|---|---|---|
PurePath | 纯路径操作的基类 | 路径连接、名称/后缀访问 |
路径 | 带 I/O 操作的具体路径 | 文件读/写、存在性检查 |
PurePosixPath | 具有 POSIX 语义的纯路径 | POSIX 特定路径处理 |
PureWindowsPath | 具有 Windows 语义的纯路径 | Windows 特定路径处理 |
示例模式
来源:Doc/library/pathlib.rst108-306 Lib/pathlib/__init__.py78-163 Lib/test/test_pathlib/test_pathlib.py87-116
os 模块提供了与操作系统功能(包括文件操作、进程管理和环境变量)的可移植接口。
主要功能
open()、read()、write())mkdir()、rmdir()、listdir())fork()、exec*()、system())os.path 子模块进行路径操作os 模块是许多更高级模块(如 pathlib 和 shutil)的基础。
来源:Doc/library/os.rst17-78 Modules/posixmodule.c593-615 Lib/test/test_os.py1-110
glob 模块使用 shell 风格的通配符查找匹配指定模式的路径名。
最近的改进包括更好地处理隐藏文件和增强的递归模式匹配。
来源:Lib/glob.py16-54 Doc/library/pathlib.rst521-585 Lib/test/test_glob.py14-26
shutil 模块提供了基于 os 模块的高级文件操作。
| 功能 | 目的 |
|---|---|
copyfile() | 将一个文件的内容复制到另一个文件。 |
copy() | 复制文件时保留权限位。 |
copy2() | 复制文件时保留所有元数据。 |
copytree() | 递归复制目录树。 |
rmtree() | 递归删除目录树。 |
make_archive() | 创建归档文件(zip、tar 等)。 |
该模块还提供了磁盘使用信息和文件查找实用程序。
来源:Lib/shutil.py58-77 Doc/library/shutil.rst23-38 Lib/test/test_shutil.py18-79
Python 3.13 引入了多项重要的标准库改进。
新模块:
dbm.sqlite3:dbm 模块的新 SQLite 后端,现为默认。重大增强:
base64:添加了用于 Z85 数据编码的 z85encode() 和 z85decode() 函数。copy:添加了 copy.replace() 函数,用于创建对象的修改副本。argparse:添加了对命令行选项弃用的支持。os:添加了用于处理 Linux 定时器通知文件描述符的函数。fractions:为 Fraction 对象添加了格式化增强。asyncio:增强了 TaskGroup 的行为,并添加了队列关闭功能。已移除模块 (PEP 594)
aifc、audioop、cgi、cgitb、chunk、crypt、imghdr 等。2to3 工具和 lib2to3 模块。tkinter.tix 模块(自 Python 3.6 起弃用)。来源:Doc/whatsnew/3.13.rst127-193 Doc/whatsnew/3.13.rst682-796 Doc/whatsnew/3.13.rst180-193
Python 3.14 添加了
新模块:
annotationlib:用于内省注解 (PEP 649)重大增强:
concurrent.futures:添加了 InterpreterPoolExecutorctypes:改进了位域支持和复杂类型处理datetime:添加了 time.strptime() 和 date.strptime() 方法更改的行为:
multiprocessing 的默认启动方法从 *fork* 更改为 *forkserver*。来源: Doc/whatsnew/3.14.rst58-117 Doc/whatsnew/3.14.rst179-201 Doc/whatsnew/3.14.rst487-526
标准库的网络和并发功能持续发展。
近期的主要改进
TaskGroup 在嵌套取消时的行为(Python 3.13)Queue.shutdown() 和 QueueShutDown 异常(Python 3.13)as_completed() 现在返回原始任务对象(Python 3.13)来源: Doc/whatsnew/3.13.rst672-731 Doc/whatsnew/3.14.rst547-579
近期改进
http.server 现在支持使用 HTTPSServer 通过 HTTPS 提供服务(Python 3.14)http.server 生成的目录列表现在支持暗黑模式(Python 3.14)来源: Doc/whatsnew/3.14.rst748-764
文件处理对比
| 任务 | 传统方法 | 现代方法 |
|---|---|---|
| 读取文本文件 | open('file.txt').read() | Path('file.txt').read_text() |
| 写入文本文件 | open('file.txt', 'w').write(data) | Path('file.txt').write_text(data) |
| 文件存在检查 | os.path.exists('file.txt') | Path('file.txt').exists() |
| 创建目录 | os.makedirs('dir/subdir', exist_ok=True) | Path('dir/subdir').mkdir(parents=True, exist_ok=True) |
| 列出文件 | os.listdir('directory') | list(Path('directory').iterdir()) |
| 按模式查找文件 | glob.glob('dir/*.txt') | list(Path('dir').glob('*.txt')) |
Python 标准库遵循以下原则:
来源: Doc/whatsnew/3.13.rst472-488 Misc/stable_abi.toml1-56 Doc/data/stable_abi.dat1-30
Python 3.13 和 3.14 包含对类型系统的多项改进。
typing.ReadOnly 可以将 TypedDict 中的项标记为只读(PEP 705,Python 3.13)typing.TypeIs 提供了改进的类型缩小(PEP 742,Python 3.13)来源: Doc/whatsnew/3.13.rst160-170 Doc/whatsnew/3.14.rst179-201
近期的 Python 版本在标准库中包含多项优化。
shutil 中文件复制操作的性能。pathlib 路径操作的性能。re 模块中更有效地处理正则表达式。来源: Lib/shutil.py90-157 Include/object.h58-100
Python 标准库持续发展,在尽可能保持稳定性和向后兼容性的同时增加了新功能。对现代方法(如面向对象的路径处理)和传统接口的关注,确保了 Python 保持通用性,并对所有开发者都易于使用。
对于每个 Python 版本,标准库都会整合社区反馈,并适应新兴需求和最佳实践,使其成为所有经验水平的 Python 程序员的重要资源。