The Python Library Reference
发布 3.7.3
Guido van Rossum
and the Python development team
四月 03, 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 . . . . . . . . . . . . . . . . . . . . . . . 50
4.9 集合类型 — set, frozenset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.10 映射类型 — dict . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.11 Context Manager Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.12 Other Built-in Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
4.13 Special Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
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 difflib — Helpers for computing deltas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 — Completion function for 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 — Higher-order functions and operations on callable objects . . . . . . . . . . . . 350
10.3 operator — 标准运算符替代函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
11 文件和目录访问 365
11.1 pathlib — Object-oriented lesystem paths . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
11.2 os.path — 常见路径操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
11.3 fileinput — Iterate over lines from multiple input streams . . . . . . . . . . . . . . . . . . 387
11.4 stat — Interpreting stat() results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
11.5 filecmp — File and Directory Comparisons . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
11.6 tempfile — Generate temporary les and directories . . . . . . . . . . . . . . . . . . . . . . 397
11.7 glob — Unix style pathname pattern expansion . . . . . . . . . . . . . . . . . . . . . . . . . 401
11.8 fnmatch — Unix lename pattern matching . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
11.9 linecache — Random access to text lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
11.10 shutil — High-level le operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
11.11 macpath — Mac OS 9 路径操作函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
12 数据持久化 415
12.1 pickle — Python object serialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
12.2 copyreg — Register pickle support functions . . . . . . . . . . . . . . . . . . . . . . . . . . 429
12.3 shelve — Python object persistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
12.4 marshal — Internal Python object serialization . . . . . . . . . . . . . . . . . . . . . . . . . 432
12.5 dbm — Interfaces to Unix ”databases” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
12.6 sqlite3 — DB-API 2.0 interface for SQLite databases . . . . . . . . . . . . . . . . . . . . . 438
ii
13 数据压缩和存档 461
13.1 zlib — 与 gzip 兼容的压缩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
13.2 gzip — 对 gzip 格式的支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
13.3 bz2 — Support for bzip2 compression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
13.4 lzma — Compression using the LZMA algorithm . . . . . . . . . . . . . . . . . . . . . . . . . 470
13.5 zipfile — Work with ZIP archives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
13.6 tarfile — Read and write tar archive les . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
14 文件格式 495
14.1 csv — CSV 文件读写 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
14.2 configparser — Conguration le parser . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
14.3 netrc — netrc le processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
14.4 xdrlib — Encode and decode XDR data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
14.5 plistlib — Generate and parse Mac OS X .plist les . . . . . . . . . . . . . . . . . . . . 524
15 加密服务 529
15.1 hashlib — 安全哈希与消息摘要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
15.2 hmac — 基于密钥的消息验证 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
15.3 secrets — Generate secure random numbers for managing secrets . . . . . . . . . . . . . . . 541
16 通用操作系统服务 545
16.1 os — 操作系统接口模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545
16.2 io — 处理流的核心工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593
16.3 time — 时间的访问和转换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606
16.4 argparse — 命令行选项、参数和子命令解析器 . . . . . . . . . . . . . . . . . . . . . . . . . 615
16.5 getopt — C-style parser for command line options . . . . . . . . . . . . . . . . . . . . . . . 648
16.6 logging — Logging facility for Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650
16.7 logging.config — 日志记录配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666
16.8 logging.handlers — Logging handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677
16.9 getpass — 便携式密码输入工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690
16.10 curses — Terminal handling for character-cell displays . . . . . . . . . . . . . . . . . . . . . 690
16.11 curses.textpad — Text input widget for curses programs . . . . . . . . . . . . . . . . . . . 709
16.12 curses.ascii — Utilities for ASCII characters . . . . . . . . . . . . . . . . . . . . . . . . . 710
16.13 curses.panel — A panel stack extension for curses . . . . . . . . . . . . . . . . . . . . . . . 713
16.14 platform — Access to underlying platform’s identifying data . . . . . . . . . . . . . . . . . . 714
16.15 errno — Standard errno system symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717
16.16 ctypes — Python 的外部函数库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723
17 并发执行 759
17.1 threading — 基于线程的并发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759
17.2 multiprocessing — Process-based parallelism . . . . . . . . . . . . . . . . . . . . . . . . . . 770
17.3 concurrent 包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 815
17.4 concurrent.futures — 启动并行任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 815
17.5 subprocess — 子进程管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 822
17.6 sched — 事件调度器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839
17.7 queue — A synchronized queue class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 840
17.8 _thread — 底层多线程 API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 844
17.9 _dummy_thread — _thread 的替代模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 845
17.10 dummy_threading — 可直接替代 threading 模块。 . . . . . . . . . . . . . . . . . . . . . . . 846
18 contextvars — Context Variables 847
18.1 Context Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 847
18.2 Manual Context Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 848
18.3 asyncio support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 850
iii