13 数据压缩和存档 455
13.1 zlib --- 与 gzip 兼容的压缩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
13.2 gzip --- 对 gzip 格式的支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
13.3 bz2 --- 对 bzip2 压缩算法的支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
13.4 lzma --- 用 LZMA 算法压缩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
13.5 zipfile --- 使用 ZIP 存档 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
13.6 tarfile --- 读写 tar 归档文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
14 文件格式 491
14.1 csv --- CSV 文件读写 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
14.2 configparser --- 配置文件解析器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
14.3 netrc --- netrc 文件处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
14.4 xdrlib --- 编码与解码 XDR 数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
14.5 plistlib --- 生成与解析 Mac OS X .plist 文件 . . . . . . . . . . . . . . . . . . . . . . . . . 518
15 加密服务 521
15.1 hashlib --- 安全哈希与消息摘要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
15.2 hmac --- 基于密钥的消息验证 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532
15.3 secrets --- 生成安全随机数字用于管理密码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
16 通用操作系统服务 537
16.1 os --- 多种操作系统接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
16.2 io --- 处理流的核心工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
16.3 time --- 时间的访问和转换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599
16.4 argparse --- 命令行选项、参数和子命令解析器 . . . . . . . . . . . . . . . . . . . . . . . . . . 608
16.5 getopt --- C-style parser for command line options . . . . . . . . . . . . . . . . . . . . . . . . . . 639
16.6 logging --- Python 的日志记录工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642
16.7 logging.config --- 日志记录配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657
16.8 logging.handlers --- 日志处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667
16.9 getpass --- 便携式密码输入工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 680
16.10 curses --- 终端字符单元显示的处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681
16.11 curses.textpad --- Text input widget for curses programs . . . . . . . . . . . . . . . . . . . . . 698
16.12 curses.ascii --- Utilities for ASCII characters . . . . . . . . . . . . . . . . . . . . . . . . . . . 700
16.13 curses.panel --- A panel stack extension for curses . . . . . . . . . . . . . . . . . . . . . . . . . 702
16.14 platform --- 获取底层平台的标识数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703
16.15 errno --- Standard errno system symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706
16.16 ctypes --- Python 的外部函数库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712
17 并发执行 747
17.1 threading --- 基于线程的并行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747
17.2 multiprocessing --- 基于进程的并行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759
17.3 multiprocessing.shared_memory --- 可从进程直接访问的共享内存 . . . . . . . . . . . . 800
17.4 concurrent 包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805
17.5 concurrent.futures --- 启动并行任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805
17.6 subprocess --- 子进程管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811
17.7 sched --- 事件调度器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829
17.8 queue --- 一个同步的队列类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 830
17.9 _thread --- 底层多线程 API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833
17.10 _dummy_thread --- _thread 的替代模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835
17.11 dummy_threading --- 可直接替代 threading 模块。 . . . . . . . . . . . . . . . . . . . . . . 835
18 contextvars --- Context Variables 837
18.1 Context Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 837
18.2 Manual Context Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 838
18.3 asyncio support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 840
iii