The Python Library Reference
发布 3.7.4rc1
Guido van Rossum
and the Python development team
六月 23, 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.3 比较 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.4 数字类型 — int, float, complex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.5 迭代器类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.6 序列类型 — list, tuple, range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.7 文本序列类型 — str . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.8 二进制序列类型 — bytes, bytearray, memoryview . . . . . . . . . . . . . . . . . . . . . . 49
4.9 集合类型 — set, frozenset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.10 映射类型 — dict . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.11 上下文管理器类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.12 其他内置类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.13 特殊属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5 内置异常 79
5.1 基类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.2 具体异常 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.3 警告 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.4 异常层次结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6 文本处理服务 89
6.1 string — 常见的字符串操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.2 re — 正则表达式操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.3 difflib — 计算差异的辅助工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
6.4 textwrap — Text wrapping and filling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
6.5 unicodedata — Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
6.6 stringprep — Internet String Preparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
6.7 readline — GNU readline interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
i
6.8 rlcompleter — GNU readline 的完成函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
7 二进制数据服务 141
7.1 struct — Interpret bytes as packed binary data . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
7.2 codecs — Codec registry and base classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
8 数据类型 165
8.1 datetime — 基础日期和时间数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
8.2 calendar — 日历相关函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
8.3 collections — 容器数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
8.4 collections.abc — 容器的抽象基类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
8.5 heapq — 堆队列算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
8.6 bisect — Array bisection algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
8.7 array — Efficient arrays of numeric values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
8.8 weakref — 弱引用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
8.9 types — Dynamic type creation and names for built-in types . . . . . . . . . . . . . . . . . . . . . 236
8.10 copy — 浅层 (shallow) 和深层 (deep) 复制操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
8.11 pprint — 数据美化输出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
8.12 reprlib — Alternate repr() implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
8.13 enum — Support for enumerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
9 数字和数学模块 267
9.1 numbers — 数字的抽象基类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
9.2 math — 数学函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
9.3 cmath ——关于复数的数学函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
9.4 decimal — 十进制定点和浮点运算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
9.5 fractions — 分数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
9.6 random — 生成伪随机数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
9.7 statistics — Mathematical statistics functions . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
10 函数式编程模块 319
10.1 itertools — 为高效循环而创建迭代器的函数 . . . . . . . . . . . . . . . . . . . . . . . . . . 319
10.2 functools — 高阶函数和可调用对象上的操作 . . . . . . . . . . . . . . . . . . . . . . . . . . 333
10.3 operator — 标准运算符替代函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
11 文件和目录访问 347
11.1 pathlib — 面向对象的文件系统路径 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
11.2 os.path — 常见路径操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
11.3 fileinput — Iterate over lines from multiple input streams . . . . . . . . . . . . . . . . . . . . . 368
11.4 stat — Interpreting stat() results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
11.5 filecmp — File and Directory Comparisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
11.6 tempfile — Generate temporary files and directories . . . . . . . . . . . . . . . . . . . . . . . . . 377
11.7 glob — Unix style pathname pattern expansion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
11.8 fnmatch — Unix filename pattern matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
11.9 linecache — Random access to text lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
11.10 shutil — High-level file operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
11.11 macpath — Mac OS 9 路径操作函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
12 数据持久化 393
12.1 pickle ——Python 对象序列化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
12.2 copyreg — Register pickle support functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
12.3 shelve — Python object persistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
12.4 marshal — Internal Python object serialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
12.5 dbm — Interfaces to Unix ”databases” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
12.6 sqlite3 — SQLite 数据库 DB-API 2.0 接口模块 . . . . . . . . . . . . . . . . . . . . . . . . . . 414
ii
13 数据压缩和存档 437
13.1 zlib — 与 gzip 兼容的压缩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
13.2 gzip — 对 gzip 格式的支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
13.3 bz2 — 对 bzip2 压缩算法的支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
13.4 lzma — 用 LZMA 算法压缩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
13.5 zipfile — 使用 ZIP 存档 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
13.6 tarfile — 读写 tar 归档文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
14 文件格式 471
14.1 csv — CSV 文件读写 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
14.2 configparser — Configuration file parser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
14.3 netrc — netrc file processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
14.4 xdrlib — Encode and decode XDR data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
14.5 plistlib — Generate and parse Mac OS X .plist files . . . . . . . . . . . . . . . . . . . . . . 498
15 加密服务 503
15.1 hashlib — 安全哈希与消息摘要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
15.2 hmac — 基于密钥的消息验证 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
15.3 secrets — Generate secure random numbers for managing secrets . . . . . . . . . . . . . . . . . . 515
16 通用操作系统服务 519
16.1 os — 操作系统接口模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
16.2 io — 处理流的核心工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
16.3 time — 时间的访问和转换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
16.4 argparse — 命令行选项、参数和子命令解析器 . . . . . . . . . . . . . . . . . . . . . . . . . . 587
16.5 getopt — C-style parser for command line options . . . . . . . . . . . . . . . . . . . . . . . . . . 617
16.6 模块 logging — Python 的日志记录工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
16.7 logging.config — 日志记录配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
16.8 logging.handlers — Logging handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645
16.9 getpass — 便携式密码输入工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657
16.10 curses — 终端字符单元显示的处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658
16.11 curses.textpad — Text input widget for curses programs . . . . . . . . . . . . . . . . . . . . . 675
16.12 curses.ascii — Utilities for ASCII characters . . . . . . . . . . . . . . . . . . . . . . . . . . . 677
16.13 curses.panel — A panel stack extension for curses . . . . . . . . . . . . . . . . . . . . . . . . . 679
16.14 platform — 获取底层平台的标识数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 680
16.15 errno — Standard errno system symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683
16.16 ctypes — Python 的外部函数库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689
17 并发执行 723
17.1 threading — 基于线程的并行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723
17.2 multiprocessing — 基于进程的并行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734
17.3 concurrent 包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775
17.4 concurrent.futures — 启动并行任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
17.5 subprocess — 子进程管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 781
17.6 sched — 事件调度器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 798
17.7 queue — 一个同步的队列类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 799
17.8 _thread — 底层多线程 API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803
17.9 _dummy_thread — _thread 的替代模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804
17.10 dummy_threading — 可直接替代 threading 模块。 . . . . . . . . . . . . . . . . . . . . . 805
18 contextvars — Context Variables 807
18.1 Context Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807
18.2 Manual Context Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 808
18.3 asyncio support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 810
iii