The Python Library Reference
发布 3.7.3
Guido van Rossum
and the Python development team
四月 21, 2019
Python Software Foundation
Email: docs@python.org
Contents
1 概述 3
1.1 可用性注释 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 内置函数 5
3 内置常量 25
3.1 由 site 模块添加的常量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4 内置类型 27
4.1 逻辑值检测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2 布尔运算 — and, or, not . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.3 比较 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.4 数字类型 — int, float, complex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.5 迭代器类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.6 序列类型 — list, tuple, range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.7 文本序列类型 — str . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.8 二进制序列类型 — bytes, bytearray, memoryview . . . . . . . . . . . . . . . . . . . . . . . 49
4.9 集合类型 — set, frozenset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.10 映射类型 — dict . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.11 Context Manager Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.12 Other Built-in Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.13 特殊属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5 内置异常 83
5.1 基类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.2 具体异常 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.3 警告 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.4 异常层次结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6 文本处理服务 93
6.1 string — 常见的字符串操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.2 re — 正则表达式操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.3 模块 diib 是一个计算差异的助手 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
6.4 textwrap — Text wrapping and lling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
6.5 unicodedata — Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
6.6 stringprep — Internet String Preparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
6.7 readline — GNU readline interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
i
6.8 rlcompleter — GNU readline 的完成函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
7 二进制数据服务 147
7.1 struct — Interpret bytes as packed binary data . . . . . . . . . . . . . . . . . . . . . . . . . 147
7.2 codecs — Codec registry and base classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
8 数据类型 171
8.1 datetime — 基础日期/时间数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
8.2 calendar — General calendar-related functions . . . . . . . . . . . . . . . . . . . . . . . . . 203
8.3 collections — 容器数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
8.4 collections.abc — 容器的抽象基类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
8.5 heapq — Heap queue algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
8.6 bisect — Array bisection algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
8.7 array — Ecient arrays of numeric values . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
8.8 weakref — 弱引用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
8.9 types — Dynamic type creation and names for built-in types . . . . . . . . . . . . . . . . . . 246
8.10 copy — 浅层 (shallow) 和深层 (deep) 复制操作 . . . . . . . . . . . . . . . . . . . . . . . . . 250
8.11 pprint — 数据美化输出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
8.12 reprlib — Alternate repr() implementation . . . . . . . . . . . . . . . . . . . . . . . . . . 256
8.13 enum — Support for enumerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
9 数字和数学模块 279
9.1 numbers — Numeric abstract base classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
9.2 math — 数学函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
9.3 cmath — Mathematical functions for complex numbers . . . . . . . . . . . . . . . . . . . . . 288
9.4 decimal — 十进制定点和浮点运算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
9.5 fractions — 分数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
9.6 random — 生成伪随机数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
9.7 statistics — Mathematical statistics functions . . . . . . . . . . . . . . . . . . . . . . . . . 327
10 函数式编程模块 335
10.1 itertools — 为高效循环而创建迭代器的函数 . . . . . . . . . . . . . . . . . . . . . . . . . . 335
10.2 functools — 高阶函数和可调用对象上的操作 . . . . . . . . . . . . . . . . . . . . . . . . . . 350
10.3 operator — 标准运算符替代函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
11 文件和目录访问 365
11.1 pathlib — 面向对象的文件系统路径 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
11.2 os.path — 常见路径操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
11.3 fileinput — Iterate over lines from multiple input streams . . . . . . . . . . . . . . . . . . 386
11.4 stat — Interpreting stat() results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
11.5 filecmp — File and Directory Comparisons . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
11.6 tempfile — Generate temporary les and directories . . . . . . . . . . . . . . . . . . . . . . 396
11.7 glob — Unix style pathname pattern expansion . . . . . . . . . . . . . . . . . . . . . . . . . 400
11.8 fnmatch — Unix lename pattern matching . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
11.9 linecache — Random access to text lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
11.10 shutil — High-level le operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
11.11 macpath — Mac OS 9 路径操作函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
12 数据持久化 413
12.1 pickle — Python object serialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
12.2 copyreg — Register pickle support functions . . . . . . . . . . . . . . . . . . . . . . . . . . 427
12.3 shelve — Python object persistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
12.4 marshal — Internal Python object serialization . . . . . . . . . . . . . . . . . . . . . . . . . 430
12.5 dbm — Interfaces to Unix ”databases” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
12.6 sqlite3 — SQLite 数据库 DB-API 2.0 接口模块 . . . . . . . . . . . . . . . . . . . . . . . . 436
ii
13 数据压缩和存档 459
13.1 zlib — 与 gzip 兼容的压缩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
13.2 gzip — 对 gzip 格式的支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
13.3 bz2 — 对 bzip2 压缩算法的支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
13.4 lzma — 用 LZMA 算法压缩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
13.5 zipfile — 在 ZIP 归档中工作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
13.6 tarfile — Read and write tar archive les . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
14 文件格式 493
14.1 csv — CSV 文件读写 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
14.2 configparser — Conguration le parser . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
14.3 netrc — netrc le processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
14.4 xdrlib — Encode and decode XDR data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
14.5 plistlib — Generate and parse Mac OS X .plist les . . . . . . . . . . . . . . . . . . . . 522
15 加密服务 527
15.1 hashlib — 安全哈希与消息摘要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527
15.2 hmac — 基于密钥的消息验证 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
15.3 secrets — Generate secure random numbers for managing secrets . . . . . . . . . . . . . . . 539
16 通用操作系统服务 543
16.1 os — 操作系统接口模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
16.2 io — 处理流的核心工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591
16.3 time — 时间的访问和转换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604
16.4 argparse — 命令行选项、参数和子命令解析器 . . . . . . . . . . . . . . . . . . . . . . . . . 613
16.5 getopt — C-style parser for command line options . . . . . . . . . . . . . . . . . . . . . . . 644
16.6 logging — Logging facility for Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
16.7 logging.config — 日志记录配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
16.8 logging.handlers — Logging handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674
16.9 getpass — 便携式密码输入工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687
16.10 curses — 终端字符单元显示的处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687
16.11 curses.textpad — Text input widget for curses programs . . . . . . . . . . . . . . . . . . . 705
16.12 curses.ascii — Utilities for ASCII characters . . . . . . . . . . . . . . . . . . . . . . . . . 707
16.13 curses.panel — A panel stack extension for curses . . . . . . . . . . . . . . . . . . . . . . . 709
16.14 platform — Access to underlying platform’s identifying data . . . . . . . . . . . . . . . . . . 710
16.15 errno — Standard errno system symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714
16.16 ctypes — Python 的外部函数库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720
17 并发执行 755
17.1 threading — 基于线程的并行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755
17.2 multiprocessing — 基于进程的并行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766
17.3 concurrent 包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 810
17.4 concurrent.futures — 启动并行任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 810
17.5 subprocess — 子进程管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 816
17.6 sched — 事件调度器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833
17.7 queue — 一个同步的队列类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835
17.8 _thread — 底层多线程 API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 838
17.9 _dummy_thread — _thread 的替代模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 840
17.10 dummy_threading — 可直接替代 threading 模块。 . . . . . . . . . . . . . . . . . . . . . . . 840
18 contextvars — Context Variables 841
18.1 Context Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 841
18.2 Manual Context Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 842
18.3 asyncio support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 844
iii