菜单

标准库亮点

相关源文件

本文档概述了 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 - 面向对象的路径操作

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 和 os.path - 操作系统接口

os 模块提供了与操作系统功能(包括文件操作、进程管理和环境变量)的可移植接口。

主要功能

  • 文件描述符操作(open()read()write()
  • 目录操作(mkdir()rmdir()listdir()
  • 进程管理(fork()exec*()system()
  • 通过 os.path 子模块进行路径操作

os 模块是许多更高级模块(如 pathlibshutil)的基础。

来源:Doc/library/os.rst17-78 Modules/posixmodule.c593-615 Lib/test/test_os.py1-110

glob - 文件名模式匹配

glob 模块使用 shell 风格的通配符查找匹配指定模式的路径名。

最近的改进包括更好地处理隐藏文件和增强的递归模式匹配。

来源:Lib/glob.py16-54 Doc/library/pathlib.rst521-585 Lib/test/test_glob.py14-26

shutil - 高级文件操作

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 添加内容

Python 3.13 引入了多项重要的标准库改进。

  • 新模块:

    • dbm.sqlite3:dbm 模块的新 SQLite 后端,现为默认。
  • 重大增强:

    • base64:添加了用于 Z85 数据编码的 z85encode()z85decode() 函数。
    • copy:添加了 copy.replace() 函数,用于创建对象的修改副本。
    • argparse:添加了对命令行选项弃用的支持。
    • os:添加了用于处理 Linux 定时器通知文件描述符的函数。
    • fractions:为 Fraction 对象添加了格式化增强。
    • asyncio:增强了 TaskGroup 的行为,并添加了队列关闭功能。
  • 已移除模块 (PEP 594)

    • 遗留模块:aifcaudioopcgicgitbchunkcryptimghdr 等。
    • 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 添加内容

Python 3.14 添加了

  • 新模块:

    • annotationlib:用于内省注解 (PEP 649)
  • 重大增强:

    • PEP 649:注解的延迟求值
    • PEP 741: Python 配置 C API
    • PEP 768: 安全的外部调试器接口
    • concurrent.futures:添加了 InterpreterPoolExecutor
    • ctypes:改进了位域支持和复杂类型处理
    • datetime:添加了 time.strptime()date.strptime() 方法
  • 更改的行为:

    • 在 macOS 和 Windows 以外的平台上,multiprocessing 的默认启动方法从 *fork* 更改为 *forkserver*。

来源: Doc/whatsnew/3.14.rst58-117 Doc/whatsnew/3.14.rst179-201 Doc/whatsnew/3.14.rst487-526

网络和并发

标准库的网络和并发功能持续发展。

asyncio - 异步 I/O

近期的主要改进

  • 改进了 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 - HTTP 协议实现

近期改进

  • http.server 现在支持使用 HTTPSServer 通过 HTTPS 提供服务(Python 3.14)
  • http.server 生成的目录列表现在支持暗黑模式(Python 3.14)
  • 为 TLS 配置添加了命令行界面选项

来源: 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 标准库遵循以下原则:

  1. 向后兼容:尽可能保持兼容性。
  2. 弃用周期:功能在移除前会经历一个弃用期。
  3. 平台支持:扩展对 iOS 和 Android 等平台的支持(Python 3.13 中均添加为第三级支持平台)。

来源: Doc/whatsnew/3.13.rst472-488 Misc/stable_abi.toml1-56 Doc/data/stable_abi.dat1-30

专业功能

类型注解和提示

Python 3.13 和 3.14 包含对类型系统的多项改进。

  • 类型参数现在支持默认值(PEP 696,Python 3.13)
  • typing.ReadOnly 可以将 TypedDict 中的项标记为只读(PEP 705,Python 3.13)
  • typing.TypeIs 提供了改进的类型缩小(PEP 742,Python 3.13)
  • 注解的延迟求值(PEP 649,Python 3.14)

来源: 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 程序员的重要资源。

来源: PC/python3dll.c1-40 Doc/whatsnew/3.13.rst48-91