前言
第1章 文本 1
1.1 string:文本常量和模板 1
1.1.1 函数 1
1.1.2 模板 2
1.1.3 高级模板 3
1.1.4 Formatter 5
1.1.5 常量 5
1.2 textwrap:格式化文本段落 6
1.2.1 示例数据 6
1.2.2 填充段落 7
1.2.3 去除现有的缩进 7
1.2.4 结合dedent和f?ill 8
1.2.5 缩进块 8
1.2.6 悬挂缩进 10
1.2.7 截断长文本 10
1.3 re:正则表达式 11
1.3.1 查找文本中的模式 11
1.3.2 编译表达式 12
1.3.3 多重匹配 13
1.3.4 模式语法 14
1.3.5 限制搜索 22
1.3.6 用组解析匹配 24
1.3.7 搜索选项 29
1.3.8 前向或后向 35
1.3.9 自引用表达式 38
1.3.10 用模式修改字符串 42
1.3.11 利用模式拆分 44
1.4 diff?lib:比较序列 46
1.4.1 比较文本体 47
1.4.2 无用数据 49
1.4.3 比较任意类型 50
第2章 数据结构 52
2.1 enum:枚举类型 53
2.1.1 创建枚举 53
2.1.2 迭代 53
2.1.3 比较Enum 54
2.1.4 唯一枚举值 55
2.1.5 通过编程创建枚举 56
2.1.6 非整数成员值 58
2.2 collections:容器数据类型 60
2.2.1 ChainMap:搜索多个字典 60
2.2.2 Counter:统计可散列的对象 63
2.2.3 defaultdict:缺少的键返回一个默认值 66
2.2.4 deque:双端队列 67
2.2.5 namedtuple:带命名字段的元组子类 70
2.2.6 OrderedDict:记住向字典中增加键的顺序 74
2.2.7 collections.abc:容器的抽象基类 76
2.3 数组:固定类型数据序列 78
2.3.1 初始化 78
2.3.2 处理数组 79
2.3.3 数组和文件 79
2.3.4 候选字节顺序 80
2.4 heapq:堆排序算法 81
2.4.1 示例数据 81
2.4.2 创建堆 82
2.4.3 访问堆的内容 83
2.4.4 堆的数据极值 85
2.4.5 高效合并有序序列 85
2.5 bisect:维护有序列表 86
2.5.1 有序插入 86
2.5.2 处理重复 87
2.6 queue:线程安全的FIFO实现 88
2.6.1 基本FIFO队列 88
2.6.2 LIFO队列 89
2.6.3 优先队列 89
2.6.4 构建一个多线程播客客户程序 90
2.7 struct:二进制数据结构 93
2.7.1 函数与Struct类 93
2.7.2 打包和解包 93
2.7.3 字节序 94
2.7.4 缓冲区 95
2.8 weakref:对象的非永久引用 96
2.8.1 引用 96
2.8.2 引用回调 97
2.8.3 最终化对象 98
2.8.4 代理 100
2.8.5 缓存对象 101
2.9 copy:复制对象 103
2.9.1 浅副本 103
2.9.2 深副本 104
2.9.3 定制复制行为 105
2.9.4 深副本中的递归 106
2.10 pprint:美观打印数据结构 107
2.10.1 打印 108
2.10.2 格式化 108
2.10.3 任意类 109
2.10.4 递归 110
2.10.5 限制嵌套输出 110
2.10.6 控制输出宽度 111
第3章 算法 113
3.1 functools:管理函数的工具 113
3.1.1 修饰符 113
3.1.2 比较 119
3.1.3 缓存 122
3.1.4 缩减数据集 125
3.1.5 泛型函数 127
3.2 itertools:迭代器函数 129
3.2.1 合并和分解迭代器 129
3.2.2 转换输入 132
3.2.3 生成新值 133
3.2.4 过滤 135
3.2.5 数据分组 138
3.2.6 合并输入 139
3.3 operator:内置操作符的函数接口 144
3.3.1 逻辑操作 144
3.3.2 比较操作符 145
3.3.3 算术操作符 145
3.3.4 序列操作符 146
3.3.5 原地操作符 148
3.3.6 属性和元素“获取方法” 148
3.3.7 结合操作符和定制类 150
3.4 contextlib:上下文管理器工具 151
3.4.1 上下文管理器API 151
3.4.2 上下文管理器作为函数修饰符 153
3.4.3 从生成器到上下文管理器 154
3.4.4 关闭打开的句柄 156
3.4.5 忽略异常 157
3.4.6 重定向输出流 158
3.4.7 动态上下文管理器栈 159
第4章 日期和时间 166
4.1 time:时钟时间 166
4.1.1 比较时钟 166
4.1.2 墙上时钟时间 167
4.1.3 单调时钟 168
4.1.4 处理器时钟时间 169
4.1.5 性能计数器 170
4.1.6 时间组成 170
4.1.7 处理时区 171
4.1.8 解析和格式化时间 172
4.2 datetime:日期和时间值管理 174
4.2.1 时间 174
4.2.2 日期 175
4.2.3 timedelta 177
4.2.4 日期算术运算 178
4.2.5 比较值 179
4.2.6 结合日期和时间 179
4.2.7 格式化和解析 180
4.2.8 时区 182
4.3 calendar:处理日期 183
4.3.1 格式化示例 183
4.3.2 本地化环境 185
4.3.3 计算日期 186
第5章 数学运算 188
5.1 decimal:定点数和浮点数的数学运算 188
5.2 fractions:有理数 196
5.3 random:伪随机数生成器 199
5.4 math:数学函数 208
5.5 statistics:统计计算 228
第6章 文件系统 232
6.1 os.path:平台独立的文件名管理 233
6.2 pathlib:文件系统路径作为对象 240
6.3 glob:文件名模式匹配 252
6.4 fnmatch:UNIX式glob模式匹配 254
6.5 linecache:高效读取文本文件 257
6.6 tempf?ile:临时文件系统对象 260
6.7 shutil:高层文件操作 265
6.8 f?ilecmp:比较文件 276
6.9 mmap:内存映射文件 283
6.10 codecs:字符串编码和解码 287
6.11 io:文本、十进制和原始流I/O工具 307
第7章 数据持久存储与交换 310
7.1 pickle:对象串行化 311
7.2 shelve:对象的持久存储 318
7.3 dbm:UNIX键-值数据库 320
7.4 sqlite3:嵌入式关系数据库 323
7.5 xml.etree.ElementTree:XML操纵API 349
7.6 csv:逗号分隔值文件 366
第8章 数据压缩与归档 375
8.1 zlib:GNU zlib压缩 375
8.2 gzip:读写GNU zip文件 382
8.3 bz2:bzip2压缩 386
8.4 tarf?ile:tar归档访问 395
8.5 zipf?ile:ZIP归档访问 402
第9章 加密 411
9.1 hashlib:密码散列 411
9.2 hmac:密码消息签名与验证 414
第 10 章 使用进程、线程和协程提供并发性 420
10.1 subprocess:创建附加进程 420
10.2 signal:异步系统事件 434
10.3 threading:进程中管理并发操作 440
10.4 multiprocessing:像线程一样管理进程 459
10.5 asyncio:异步I/O、事件循环和并发工具 484
10.6 concurrent.futures:管理并发任务池 530
第 11 章 网络通信 539
11.1 ipaddress:Internet地址 539
11.2 socket:网络通信 544
11.3 selectors:I/O多路复用抽象 568
11.4 select:高效等待I/O 572
11.5 socketserver:创建网络服务器 583
第 12 章 互联网 592
12.1 urllib.parse:分解URL 592
12.2 urllib.request:网络资源访问 599
12.3 urllib.robotparser: Internet蜘蛛访问控制 608
12.4 base64:用ASCII编码二进制数据 611
12.5 http.server:实现Web服务器的基类 615
12.6 http.cookies:HTTP cookie 622
12.7 webbrowser:显示Web页面 626
12.8 uuid:全局唯一标识符 628
12.9 json:JavaScript对象记法 632
12.10 xmlrpc.client:XML-RPC的客户库 642
12.11 xmlrpc.server:一个XML-RPC服务器 652
第 13 章 email 662
13.1 smtplib:简单邮件传输协议客户 662
13.2 smtpd:示例邮件服务器 667
13.3 mailbox:管理email归档 670
13.4 imaplib:IMAP4客户库 680
第 14 章 应用构建模块 699
14.1 argparse:命令行选项和参数解析 700
14.2 getopt:命令行选项解析 722
14.3 readline:GNU readline库 727
14.4 getpass:安全密码提示 737
14.5 cmd:面向行的命令处理器 739
14.6 shlex:解析shell类语法 749
14.7 conf?igparser:处理配置文件 757
14.8 logging:报告状态、错误和信息消息 772
14.9 f?ileinput:命令行过滤器框架 778
14.10 atexit:程序关闭回调 782
14.11 sched:定时事件调度器 787
第 15 章 国际化和本地化 791
15.1 gettext:消息编目 791
15.2 locale:文化本地化API 798
第 16 章 开发工具 807
16.1 pydoc:模块的联机帮助 808
16.2 doctest:通过文档完成测试 810
16.3 unittest:自动测试框架 829
16.4 trace:执行程序流 843
16.5 traceback:异常和栈轨迹 850
16.6 cgitb:详细的traceback报告 859
16.7 pdb:交互式调试工具 868
16.8 prof?ile和pstats:性能分析 898
16.9 timeit:测量小段Python代码执行的时间 905
16.10 tabnanny:缩进验证工具 909
16.11 compileall:字节编译源文件 910
16.12 pyclbr:类浏览器 914
16.13 venv:创建虚拟环境 917
16.14 ensurepip:安装Python包安装工具 920
第 17 章 运行时特性 922
17.1 site:全站点配置 922
17.2 sys:系统特定配置 929
17.3 os:可移植访问操作系统特定特性 968
17.4 platform:系统版本信息 983
17.5 resource:系统资源管理 987
17.6 gc:垃圾回收器 990
17.6.5 调试 998
17.7 sysconf?ig:解释器编译时配置 1002
第 18 章 语言工具 1009
18.1 warnings:非致命警告 1009
18.2 abc:抽象基类 1015
18.3 dis:Python字节码反汇编工具 1023
18.4 inspect:检查现场对象 1035
第 19 章 模块和包 1048
19.1 importlib:Python的导入机制 1048
19.2 pkgutil:包工具 1052
19.3 zipimport:从ZIP归档加载Python代码 1060
附录A 移植说明 1066
附录B 标准库之外 1081