注重体验与质量的电子书资源下载网站
分类于: 职场办公 人工智能
简介
Python标准库 豆 8.4分
资源最后更新于 2020-07-25 14:08:45
作者:Doug Hellmann
译者:刘炽
出版社:机械工业出版社华章公司
出版日期:2012-01
ISBN:9787111378105
文件格式: pdf
标签: python Python 编程 计算机 程序设计 Programming 脚本语言 标准库
简介· · · · · ·
本书由资深Python专家亲自执笔,Python语言的核心开发人员作序推荐,权威性毋庸置疑。
对于程序员而言,标准库与语言本身同样重要,它好比一个百宝箱,能为各种常见的任务提供完美的解决方案,所以本书是所有Python程序员都必备的工具书!本书以案例驱动的方式讲解了标准库中一百多个模块的使用方法(如何工作)和工作原理(为什么要这样工作),比标准库的官方文档更容易理解(一个简单的示例比一份手册文档更有帮助),为Python程序员熟练掌握和使用这些模块提供了绝佳指导。
全书一共19章,系统而全面地对Python标准库中的一百多个模块进行了生动的讲解。这些模块主要包括:文本处理工具模块、与数据结构相关的模块、与算法有关的模块、管理日期和时间值的模块、用于数学计算的模块、管理文件系统的模块、用于数据存储与交换的模块、用于数据压缩与归档的模块、用于加密的模块、...
目录
译者序
序
前言
第1章 文本1
1.1 string—文本常量和模板1
1.1.1 函数1
1.1.2 模板2
1.1.3 高级模板4
1.2 textwrap—格式化文本段落6
1.2.1 示例数据6
1.2.2 填充段落6
1.2.3 去除现有缩进7
1.2.4 结合dedent和fill7
1.2.5 悬挂缩进8
1.3 re—正则表达式9
1.3.1 查找文本中的模式9
1.3.2 编译表达式10
1.3.3 多重匹配11
1.3.4 模式语法12
1.3.5 限制搜索22
1.3.6 用组解析匹配23
1.3.7 搜索选项28
1.3.8 前向或后向36
1.3.9 自引用表达式40
1.3.10 用模式修改字符串44
1.3.11 利用模式拆分46
1.4 difflib—比较序列49
1.4.1 比较文本体49
1.4.2 无用数据51
1.4.3 比较任意类型53
第2章 数据结构55
2.1 collections—容器数据类型56
2.1.1 Counter56
2.1.2 defaultdict59
2.1.3 deque59
2.1.4 namedtuple63
2.1.5 OrderedDict65
2.2 array—固定类型数据序列66
2.2.1 初始化67
2.2.2 处理数组67
2.2.3 数组与文件68
2.2.4 候选字节顺序68
2.3 heapq—堆排序算法69
2.3.1 示例数据70
2.3.2 创建堆70
2.3.3 访问堆的内容72
2.3.4 堆的数据极值73
2.4 bisect—维护有序列表74
2.4.1 有序插入74
2.4.2 处理重复75
2.5 Queue—线程安全的FIFO实现76
2.5.1 基本FIFO队列77
2.5.2 LIFO队列77
2.5.3 优先队列78
2.5.4 构建一个多线程播客客户程序79
2.6 struct—二进制数据结构81
2.6.1 函数与Struct类81
2.6.2 打包和解包81
2.6.3 字节序82
2.6.4 缓冲区84
2.7 weakref—对象的非永久引用85
2.7.1 引用85
2.7.2 引用回调86
2.7.3 代理87
2.7.4 循环引用87
2.7.5 缓存对象92
2.8 copy—复制对象94
2.8.1 浅副本94
2.8.2 深副本95
2.8.3 定制复制行为96
2.8.4 深副本中的递归96
2.9 pprint—美观打印数据结构98
2.9.1 打印99
2.9.2 格式化99
2.9.3 任意类100
2.9.4 递归101
2.9.5 限制嵌套输出101
2.9.6 控制输出宽度101
第3章 算法103
3.1 functools—管理函数的工具103
3.1.1 修饰符103
3.1.2 比较111
3.2 itertools—迭代器函数114
3.2.1 合并和分解迭代器114
3.2.2 转换输入116
3.2.3 生成新值117
3.2.4 过滤119
3.2.5 数据分组121
3.3 operator—内置操作符的函数接口123
3.3.1 逻辑操作123
3.3.2 比较操作符124
3.3.3 算术操作符124
3.3.4 序列操作符126
3.3.5 原地操作符127
3.3.6 属性和元素“获取方法”128
3.3.7 结合操作符和定制类129
3.3.8 类型检查130
3.4 contextlib—上下文管理器工具131
3.4.1 上下文管理器API131
3.4.2 从生成器到上下文管理器134
3.4.3 嵌套上下文135
3.4.4 关闭打开的句柄136
第4章 日期和时间138
4.1 time—时钟时间138
4.1.1 壁挂钟时间138
4.1.2 处理器时钟时间139
4.1.3 时间组成140
4.1.4 处理时区141
4.1.5 解析和格式化时间143
4.2 datetime—日期和时间值管理144
4.2.1 时间144
4.2.2 日期145
4.2.3 timedelta147
4.2.4 日期算术运算148
4.2.5 比较值149
4.2.6 结合日期和时间150
4.2.7 格式化和解析151
4.2.8 时区151
4.3 calendar—处理日期152
4.3.1 格式化示例152
4.3.2 计算日期155
第5章 数学计算157
5.1 decimal—定点数和浮点数的数学运算157
5.1.1 Decimal157
5.1.2 算术运算158
5.1.3 特殊值160
5.1.4 上下文160
5.2 fractions—有理数165
5.2.1 创建 Fraction实例165
5.2.2 算术运算167
5.2.3 近似值168
5.3 random—伪随机数生成器168
5.3.1 生成随机数168
5.3.2 指定种子169
5.3.3 保存状态170
5.3.4 随机整数171
5.3.5 选择随机元素172
5.3.6 排列172
5.3.7 采样174
5.3.8 多个并发生成器175
5.3.9 SystemRandom176
5.3.10 非均匀分布177
5.4 math—数学函数178
5.4.1 特殊常量178
5.4.2 测试异常值179
5.4.3 转换为整数180
5.4.4 其他表示181
5.4.5 正号和负号183
5.4.6 常用计算184
5.4.7 指数和对数186
5.4.8 角190
5.4.9 三角函数191
5.4.10 双曲函数194
5.4.11 特殊函数195
第6章 文件系统197
6.1 os.path—平台独立的文件名管理198
6.1.1 解析路径198
6.1.2 建立路径200
6.1.3 规范化路径201
6.1.4 文件时间202
6.1.5 测试文件203
6.1.6 遍历一个目录树204
6.2 glob—文件名模式匹配205
6.2.1 示例数据205
6.2.2 通配符206
6.2.3 单字符通配符207
6.2.4 字符区间207
6.3 linecache—高效读取文本文件208
6.3.1 测试数据208
6.3.2 读取特定行209
6.3.3 处理空行209
6.3.4 错误处理210
6.3.5 读取Python源文件210
6.4 tempfile—临时文件系统对象211
6.4.1 临时文件211
6.4.2 命名文件213
6.4.3 临时目录214
6.4.4 预测名214
6.4.5 临时文件位置215
6.5 shutil—高级文件操作216
6.5.1 复制文件216
6.5.2 复制文件元数据218
6.5.3 处理目录树220
6.6 mmap—内存映射文件222
6.6.1 读文件223
6.6.2 写文件223
6.6.3 正则表达式225
6.7 codecs—字符串编码和解码226
6.7.1 Unicode入门226
6.7.2 处理文件228
6.7.3 字节序230
6.7.4 错误处理232
6.7.5 标准输入和输出流235
6.7.6 编码转换238
6.7.7 非Unicode编码239
6.7.8 增量编码240
6.7.9 Unicode数据和网络通信242
6.7.10 定义定制编码245
6.8 StringIO—提供类文件API的文本缓冲区251
6.9 fnmatch—UNIX式glob模式匹配252
6.9.1 简单匹配252
6.9.2 过滤253
6.9.3 转换模式254
6.10 dircache—缓存目录列表254
6.10.1 列出目录内容255
6.10.2 标注列表256
6.11 filecmp—比较文件257
6.11.1 示例数据258
6.11.2 比较文件260
6.11.3 比较目录261
6.11.4 程序中使用差异262
第7章 数据持久存储与交换267
7.1 pickle—对象串行化268
7.1.1 导入268
7.1.2 编码和解码字符串数据268
7.1.3 处理流269
7.1.4 重构对象的问题271
7.1.5 不可pickle的对象272
7.1.6 循环引用273
7.2 shelve—对象持久存储275
7.2.1 创建一个新shelf275
7.2.2 写回276
7.2.3 特定shelf类型277
7.3 anydbm—DBM数据库278
7.3.1 数据库类型278
7.3.2 创建一个新数据库279
7.3.3 打开一个现有数据库279
7.3.4 错误情况280
7.4 whichdb—识别DBM数据库格式281
7.5 sqlite3—嵌入式关系数据库281
7.5.1 创建数据库282
7.5.2 获取数据285
7.5.3 查询元数据286
7.5.4 行对象287
7.5.5 查询中使用变量288
7.5.6 批量加载290
7.5.7 定义新列类型291
7.5.8 确定列类型294
7.5.9 事务296
7.5.10 隔离级别298
7.5.11 内存中数据库302
7.5.12 导出数据库内容302
7.5.13 SQL中使用Python函数304
7.5.14 定制聚集306
7.5.15 定制排序307
7.5.16 线程和连接共享308
7.5.17 限制对数据的访问309
7.6 xml.etree.ElementTree—XML操纵API311
7.6.1 解析XML文档312
7.6.2 遍历解析树313
7.6.3 查找文档中的节点314
7.6.4 解析节点属性315
7.6.5 解析时监视事件317
7.6.6 创建一个定制树构造器319
7.6.7 解析串321
7.6.8 用元素节点构造文档322
7.6.9 美观打印XML323
7.6.10 设置元素属性325
7.6.11 由节点列表构造树327
7.6.12 将XML串行化至一个流329
7.7 csv—逗号分隔值文件331
7.7.1 读文件332
7.7.2 写文件332
7.7.3 方言334
7.7.4 使用字段名338
第8章 数据压缩与归档340
8.1 zlib—GNU zlib压缩340
8.1.1 处理内存中数据340
8.1.2 增量压缩与解压缩341
8.1.3 混合内容流342
8.1.4 校验和343
8.1.5 压缩网络数据343
8.2 gzip—读写GNU Zip文件347
8.2.1 写压缩文件348
8.2.2 读压缩数据349
8.2.3 处理流350
8.3 bz2—bzip2压缩352
8.3.1 内存中一次性操作352
8.3.2 增量压缩和解压缩354
8.3.3 混合内容流354
8.3.4 写压缩文件355
8.3.5 读压缩文件357
8.3.6 压缩网络数据358
8.4 tarfile—Tar归档访问362
8.4.1 测试Tar文件362
8.4.2 从归档文件读取元数据362
8.4.3 从归档抽取文件364
8.4.4 创建新归档365
8.4.5 使用候选归档成员名366
8.4.6 从非文件源写数据366
8.4.7 追加到归档367
8.4.8 处理压缩归档368
8.5 zipfile—ZIP归档访问369
8.5.1 测试ZIP文件369
8.5.2 从归档读取元数据369
8.5.3 从归档抽取归档文件371
8.5.4 创建新归档371
8.5.5 使用候选归档成员名373
8.5.6 从非文件源写数据373
8.5.7 利用ZipInfo实例写374
8.5.8 追加到文件375
8.5.9 Python ZIP归档376
8.5.10 限制377
第9章 加密378
9.1 hashlib—密码散列378
9.1.1 示例数据378
9.1.2 MD5示例379
9.1.3 SHA1示例379
9.1.4 按名创建散列379
9.1.5 增量更新380
9.2 hmac—密码消息签名与验证381
9.2.1 消息签名381
9.2.2 SHA与MD5382
9.2.3 二进制摘要383
9.2.4 消息签名的应用383
第10章 进程与线程387
10.1 subprocess—创建附加进程387
10.1.1 运行外部命令388
10.1.2 直接处理管道391
10.1.3 连接管道段393
10.1.4 与其他命令交互394
10.1.5 进程间传递信号396
10.2 signal—异步系统事件400
10.2.1 接收信号400
10.2.2 获取注册的处理程序401
10.2.3 发送信号402
10.2.4 闹铃403
10.2.5 忽略信号403
10.2.6 信号和线程404
10.3 threading—管理并发操作406
10.3.1 Thread对象406
10.3.2 确定当前线程407
10.3.3 守护与非守护线程409
10.3.4 列举所有线程411
10.3.5 派生线程412
10.3.6 定时器线程414
10.3.7 线程间传送信号415
10.3.8 控制资源访问416
10.3.9 同步线程421
10.3.10 限制资源的并发访问422
10.3.11 线程特定数据423
10.4 multiprocessing—像线程一样管理进程425
10.4.1 multiprocessing基础426
10.4.2 可导入的目标函数427
10.4.3 确定当前进程428
10.4.4 守护进程428
10.4.5 等待进程430
10.4.6 终止进程431
10.4.7 进程退出状态432
10.4.8 日志434
10.4.9 派生进程435
10.4.10 向进程传递消息435
10.4.11 进程间信号传输438
10.4.12 控制资源访问439
10.4.13 同步操作440
10.4.14 控制资源的并发访问441
10.4.15 管理共享状态443
10.4.16 共享命名空间444
10.4.17 进程池445
10.4.18 实现MapReduce447
第11章 网络通信452
11.1 socket—网络通信452
11.1.1 寻址、协议簇和套接字类型452
11.1.2 TCP/IP客户和服务器460
11.1.3 用户数据报客户和服务器467
11.1.4 UNIX域套接字469
11.1.5 组播473
11.1.6 发送二进制数据476
11.1.7 非阻塞通信和超时478
11.2 select—高效等待I/O 479
11.2.1 使用select()479
11.2.2 有超时的非阻塞I/O484
11.2.3 使用 poll()486
11.2.4 平台特定选项490
11.3 SocketServer—创建网络服务器491
11.3.1 服务器类型491
11.3.2 服务器对象491
11.3.3 实现服务器491
11.3.4 请求处理器492
11.3.5 回应示例492
11.3.6 线程和进程497
11.4 asyncore—异步I/O499
11.4.1 服务器500
11.4.2 客户501
11.4.3 事件循环503
11.4.4 处理其他事件循环505
11.4.5 处理文件507
11.5 asynchat—异步协议处理器508
11.5.1 消息终止符508
11.5.2 服务器和处理器508
11.5.3 客户511
11.5.4 集成512
第12章 Internet514
12.1 urlparse—分解URL514
12.1.1 解析515
12.1.2 反解析517
12.1.3 连接518
12.2 BaseHTTPServer—实现Web服务器的基类519
12.2.1 HTTP GET519
12.2.2 HTTP POST521
12.2.3 线程与进程522
12.2.4 处理错误523
12.2.5 设置首部524
12.3 urllib—网络资源访问525
12.3.1 利用缓存实现简单获取526
12.3.2 参数编码527
12.3.3 路径与URL529
12.4 urllib2—网络资源访问530
12.4.1 HTTP GET530
12.4.2 参数编码532
12.4.3 HTTP POST533
12.4.4 增加发出首部534
12.4.5 从请求提交表单数据535
12.4.6 上传文件536
12.4.7 创建定制协议处理器539
12.5 Base64—用ASCII编码二进制数据541
12.5.1 Base64编码541
12.5.2 Base64解码542
12.5.3 URL安全的变种543
12.5.4 其他编码543
12.6 robotparser—网络蜘蛛访问控制544
12.6.1 robots.txt545
12.6.2 测试访问权限545
12.6.3 长久蜘蛛546
12.7 Cookie—HTTP Cookie547
12.7.1 创建和设置Cookie547
12.7.2 Morsel548
12.7.3 编码值550
12.7.4 接收和解析Cookie首部550
12.7.5 候选输出格式551
12.7.6 废弃的类552
12.8 uuid—全局惟一标识符552
12.8.1 UUID 1—IEEE 802 MAC地址552
12.8.2 UUID 3和5—基于名字的值554
12.8.3 UUID 4—随机值556
12.8.4 处理UUID对象556
12.9 json—JavaScript对象记法557
12.9.1 编码和解码简单数据类型557
12.9.2 优质输出和紧凑输出558
12.9.3 编码字典560
12.9.4 处理定制类型561
12.9.5 编码器和解码器类563
12.9.6 处理流和文件565
12.9.7 混合数据流566
12.10 xmlrpclib—XML-RPC的客户端库567
12.10.1 连接服务器568
12.10.2 数据类型570
12.10.3 传递对象573
12.10.4 二进制数据573
12.10.5 异常处理575
12.10.6 将调用结合在一个消息中575
12.11 SimpleXMLRPCServer—一个XML-RPC服务器577
12.11.1 一个简单的服务器577
12.11.2 备用API名578
12.11.3 加点的API名 579
12.11.4 任意API名580
12.11.5 公布对象的方法581
12.11.6 分派调用583
12.11.7 自省API584
第13章 Email587
13.1 smtplib—简单邮件传输协议客户587
13.1.1 发送Email消息587
13.1.2 认证和加密589
13.1.3 验证Email地址592
13.2 smtpd—示例邮件服务器593
13.2.1 邮件服务器基类593
13.2.2 调试服务器595
13.2.3 代理服务器596
13.3 imaplib—IMAP4客户库596
13.3.1 变种597
13.3.2 连接到服务器597
13.3.3 示例配置598
13.3.4 列出邮箱599
13.3.5 邮箱状态601
13.3.6 选择邮箱602
13.3.7 搜索消息603
13.3.8 搜索规则604
13.3.9 获取消息605
13.3.10 完整消息608
13.3.11 上传消息609
13.3.12 移动和复制消息611
13.3.13 删除消息612
13.4 mailbox—管理邮件归档614
13.4.1 mbox614
13.4.2 Maildir616
13.4.3 其他格式622
第14章 应用构建模块623
14.1 getopt—命令行选项解析624
14.1.1 函数参数624
14.1.2 短格式选项624
14.1.3 长格式选项625
14.1.4 一个完整的例子625
14.1.5 缩写长格式选项627
14.1.6 GNU选项解析627
14.1.7 结束参数处理629
14.2 optparse—命令行选项解析器629
14.2.1 创建OptionParser629
14.2.2 短格式和长格式选项630
14.2.3 用getopt比较631
14.2.4 选项值632
14.2.5 选项动作635
14.2.6 帮助消息639
14.3 argparse—命令行选项和参数解析644
14.3.1 与optparse比较644
14.3.2 建立解析器644
14.3.3 定义参数644
14.3.4 解析命令行645
14.3.5 简单示例645
14.3.6 自动生成的选项652
14.3.7 解析器组织653
14.3.8 高级参数处理659
14.4 readline—GNU Readline库666
14.4.1 配置667
14.4.2 完成文本668
14.4.3 访问完成缓冲区670
14.4.4 输入历史674
14.4.5 hook676
14.5 getpass—安全密码提示677
14.5.1 示例677
14.5.2 无终端使用getpass678
14.6 cmd—面向行的命令处理器679
14.6.1 处理命令680
14.6.2 命令参数681
14.6.3 现场帮助682
14.6.4 自动完成683
14.6.5 覆盖基类方法684
14.6.6 通过属性配置Cmd 686
14.6.7 运行shell命令687
14.6.8 候选输入688
14.6.9 sys.argv的命令689
14.7 shlex—解析shell语法690
14.7.1 加引号的字符串691
14.7.2 嵌入注释692
14.7.3 分解693
14.7.4 包含其他Token源693
14.7.5 控制解析器694
14.7.6 错误处理696
14.7.7 POSIX与非POSIX解析697
14.8 ConfigParser—处理配置文件698
14.8.1 配置文件格式699
14.8.2 读取配置文件699
14.8.3 访问配置设置701
14.8.4 修改设置705
14.8.5 保存配置文件706
14.8.6 选项搜索路径707
14.8.7 用接合合并值709
14.9 日志—报告状态、错误和信息消息712
14.9.1 应用与库中的日志记录712
14.9.2 记入文件712
14.9.3 旋转日志文件713
14.9.4 详细级别714
14.9.5 命名日志记录器实例715
14.10 fileinput—命令行过滤器框架716
14.10.1 M3U文件转换为RSS716
14.10.2 进度元数据718
14.10.3 原地过滤719
14.11 atexit—程序关闭回调721
14.11.1 示例721
14.11.2 什么情况下不调用atexit函数722
14.11.3 处理异常724
14.12 sched—定时事件调度器725
14.12.1 有延迟地运行事件725
14.12.2 重叠事件726
14.12.3 事件优先级727
14.12.4 取消事件727
第15章 国际化和本地化729
15.1 gettext—消息编目729
15.1.1 转换工作流概述729
15.1.2 由源代码创建消息编目730
15.1.3 运行时查找消息编目732
15.1.4 复数值733
15.1.5 应用与模块本地化735
15.1.6 切换转换736
15.2 locale—文化本地化API736
15.2.1 探查当前本地化环境737
15.2.2 货币742
15.2.3 格式化数字742
15.2.4 解析数字743
15.2.5 日期和时间744
第16章 开发工具745
16.1 pydoc—模块的联机帮助746
16.1.1 纯文本帮助746
16.1.2 HTML帮助746
16.1.3 交互式帮助746
16.2 doctest—通过文档完成测试747
16.2.1 开始747
16.2.2 处理不可预测的输出748
16.2.3 Traceback752
16.2.4 避开空白符753
16.2.5 测试位置758
16.2.6 外部文档761
16.2.7 运行测试763
16.2.8 测试上下文766
16.3 unittest—自动测试框架769
16.3.1 基本测试结构769
16.3.2 运行测试770
16.3.3 测试结果770
16.3.4 断言真值772
16.3.5 测试相等性773
16.3.6 近似相等774
16.3.7 测试异常775
16.3.8 测试固件775
16.3.9 测试套件776
16.4 traceback—异常和栈轨迹777
16.4.1 支持函数777
16.4.2 处理异常777
16.4.3 处理栈780
16.5 cgitb—详细的traceback报告783
16.5.1 标准traceback转储783
16.5.2 启用详细traceback783
16.5.3 traceback中的局部变量785
16.5.4 异常属性787
16.5.5 HTML输出788
16.5.6 记录traceback789
16.6 pdb—交互式调试工具791
16.6.1 启动调试工具791
16.6.2 控制调试工具794
16.6.3 断点803
16.6.4 改变执行流813
16.6.5 用别名定制调试工具819
16.6.6 保存配置设置821
16.7 trace—执行程序流822
16.7.1 示例程序822
16.7.2 跟踪执行822
16.7.3 代码覆盖823
16.7.4 调用关系825
16.7.5 编程接口826
16.7.6 保存结果数据828
16.7.7 选项829
16.8 profile和pstats—性能分析830
16.8.1 运行性能分析工具830
16.8.2 在上下文中运行832
16.8.3 pstats:保存和处理统计信息833
16.8.4 限制报告内容835
16.8.5 调用图836
16.9 timeit—测量小段Python代码的执行时间837
16.9.1 模块内容837
16.9.2 基本示例837
16.9.3 值存储在字典中838
16.9.4 从命令行执行840
16.10 compileall—字节编译源文件841
16.10.1 编译一个目录842
16.10.2 编译sys.path842
16.10.3 从命令行执行843
16.11 pyclbr—类浏览器843
16.11.1 扫描类845
16.11.2 扫描函数846
第17章 运行时特性847
17.1 site—全站点配置847
17.1.1 导入路径847
17.1.2 用户目录849
17.1.3 路径配置文件850
17.1.4 定制站点配置852
17.1.5 定制用户配置853
17.1.6 禁用site模块854
17.2 sys—系统特定的配置854
17.2.1 解释器设置855
17.2.2 运行时环境860
17.2.3 内存管理和限制862
17.2.4 异常处理867
17.2.5 底层线程支持869
17.2.6 模块和导入875
17.2.7 跟踪程序运行情况892
17.3 os—可移植访问操作系统特定特性898
17.3.1 进程所有者898
17.3.2 进程环境900
17.3.3 进程工作目录901
17.3.4 管道901
17.3.5 文件描述符905
17.3.6 文件系统权限905
17.3.7 目录906
17.3.8 符号链接907
17.3.9 遍历目录树907
17.3.10 运行外部命令909
17.3.11 用os.fork()创建进程910
17.3.12 等待子进程911
17.3.13 Spawn913
17.3.14 文件系统权限913
17.4 platform—系统版本信息914
17.4.1 解释器915
17.4.2 平台916
17.4.3 操作系统和硬件信息916
17.4.4 可执行程序体系结构918
17.5 resource—系统资源管理918
17.5.1 当前使用情况919
17.5.2 资源限制919
17.6 gc—垃圾回收器922
17.6.1 跟踪引用922
17.6.2 强制垃圾回收925
17.6.3 查找无法收集的对象引用928
17.6.4 回收阈限和代931
17.6.5 调试933
17.7 sysconfig—解释器编译时配置940
17.7.1 配置变量940
17.7.2 安装路径942
17.7.3 Python版本和平台945
第18章 语言工具947
18.1 warnings—非致命警告947
18.1.1 分类和过滤948
18.1.2 生成警告948
18.1.3 用模式过滤949
18.1.4 重复的警告951
18.1.5 候选消息传送函数951
18.1.6 格式化952
18.1.7 警告中的栈层次952
18.2 abc—抽象基类953
18.2.1 为什么使用抽象基类953
18.2.2 抽象基类如何工作954
18.2.3 注册一个具体类954
18.2.4 通过派生实现955
18.2.5 abc中的具体方法956
18.2.6 抽象属性957
18.3 dis—Python字节码反汇编工具960
18.3.1 基本反汇编961
18.3.2 反汇编函数961
18.3.3 类963
18.3.4 使用反汇编进行调试963
18.3.5 循环的性能分析965
18.3.6 编译器优化970
18.4 inspect—检查现场对象972
18.4.1 示例模块972
18.4.2 模块信息973
18.4.3 检查模块974
18.4.4 检查类975
18.4.5 文档串 976
18.4.6 获取源代码977
18.4.7 方法和函数参数979
18.4.8 类层次结构980
18.4.9 方法解析顺序981
18.4.10 栈与帧982
18.5 exceptions—内置异常类984
18.5.1 基类985
18.5.2 产生的异常985
18.5.3 警告类型998
第19章 模块与包999
19.1 imp—Python的导入机制999
19.1.1 示例包999
19.1.2 模块类型999
19.1.3 查找模块1000
19.1.4 加载模块1001
19.2 zipimport—从ZIP归档加载Python代码1003
19.2.1 示例1003
19.2.2 查找模块1004
19.2.3 访问代码1004
19.2.4 源代码1005
19.2.5 包1006
19.2.6 数据1006
19.3 pkgutil—包工具1008
19.3.1 包导入路径1008
19.3.2 包的开发版本1010
19.3.3 用PKG文件管理路径1011
19.3.4 嵌套包1013
19.3.5 包数据1014
序
前言
第1章 文本1
1.1 string—文本常量和模板1
1.1.1 函数1
1.1.2 模板2
1.1.3 高级模板4
1.2 textwrap—格式化文本段落6
1.2.1 示例数据6
1.2.2 填充段落6
1.2.3 去除现有缩进7
1.2.4 结合dedent和fill7
1.2.5 悬挂缩进8
1.3 re—正则表达式9
1.3.1 查找文本中的模式9
1.3.2 编译表达式10
1.3.3 多重匹配11
1.3.4 模式语法12
1.3.5 限制搜索22
1.3.6 用组解析匹配23
1.3.7 搜索选项28
1.3.8 前向或后向36
1.3.9 自引用表达式40
1.3.10 用模式修改字符串44
1.3.11 利用模式拆分46
1.4 difflib—比较序列49
1.4.1 比较文本体49
1.4.2 无用数据51
1.4.3 比较任意类型53
第2章 数据结构55
2.1 collections—容器数据类型56
2.1.1 Counter56
2.1.2 defaultdict59
2.1.3 deque59
2.1.4 namedtuple63
2.1.5 OrderedDict65
2.2 array—固定类型数据序列66
2.2.1 初始化67
2.2.2 处理数组67
2.2.3 数组与文件68
2.2.4 候选字节顺序68
2.3 heapq—堆排序算法69
2.3.1 示例数据70
2.3.2 创建堆70
2.3.3 访问堆的内容72
2.3.4 堆的数据极值73
2.4 bisect—维护有序列表74
2.4.1 有序插入74
2.4.2 处理重复75
2.5 Queue—线程安全的FIFO实现76
2.5.1 基本FIFO队列77
2.5.2 LIFO队列77
2.5.3 优先队列78
2.5.4 构建一个多线程播客客户程序79
2.6 struct—二进制数据结构81
2.6.1 函数与Struct类81
2.6.2 打包和解包81
2.6.3 字节序82
2.6.4 缓冲区84
2.7 weakref—对象的非永久引用85
2.7.1 引用85
2.7.2 引用回调86
2.7.3 代理87
2.7.4 循环引用87
2.7.5 缓存对象92
2.8 copy—复制对象94
2.8.1 浅副本94
2.8.2 深副本95
2.8.3 定制复制行为96
2.8.4 深副本中的递归96
2.9 pprint—美观打印数据结构98
2.9.1 打印99
2.9.2 格式化99
2.9.3 任意类100
2.9.4 递归101
2.9.5 限制嵌套输出101
2.9.6 控制输出宽度101
第3章 算法103
3.1 functools—管理函数的工具103
3.1.1 修饰符103
3.1.2 比较111
3.2 itertools—迭代器函数114
3.2.1 合并和分解迭代器114
3.2.2 转换输入116
3.2.3 生成新值117
3.2.4 过滤119
3.2.5 数据分组121
3.3 operator—内置操作符的函数接口123
3.3.1 逻辑操作123
3.3.2 比较操作符124
3.3.3 算术操作符124
3.3.4 序列操作符126
3.3.5 原地操作符127
3.3.6 属性和元素“获取方法”128
3.3.7 结合操作符和定制类129
3.3.8 类型检查130
3.4 contextlib—上下文管理器工具131
3.4.1 上下文管理器API131
3.4.2 从生成器到上下文管理器134
3.4.3 嵌套上下文135
3.4.4 关闭打开的句柄136
第4章 日期和时间138
4.1 time—时钟时间138
4.1.1 壁挂钟时间138
4.1.2 处理器时钟时间139
4.1.3 时间组成140
4.1.4 处理时区141
4.1.5 解析和格式化时间143
4.2 datetime—日期和时间值管理144
4.2.1 时间144
4.2.2 日期145
4.2.3 timedelta147
4.2.4 日期算术运算148
4.2.5 比较值149
4.2.6 结合日期和时间150
4.2.7 格式化和解析151
4.2.8 时区151
4.3 calendar—处理日期152
4.3.1 格式化示例152
4.3.2 计算日期155
第5章 数学计算157
5.1 decimal—定点数和浮点数的数学运算157
5.1.1 Decimal157
5.1.2 算术运算158
5.1.3 特殊值160
5.1.4 上下文160
5.2 fractions—有理数165
5.2.1 创建 Fraction实例165
5.2.2 算术运算167
5.2.3 近似值168
5.3 random—伪随机数生成器168
5.3.1 生成随机数168
5.3.2 指定种子169
5.3.3 保存状态170
5.3.4 随机整数171
5.3.5 选择随机元素172
5.3.6 排列172
5.3.7 采样174
5.3.8 多个并发生成器175
5.3.9 SystemRandom176
5.3.10 非均匀分布177
5.4 math—数学函数178
5.4.1 特殊常量178
5.4.2 测试异常值179
5.4.3 转换为整数180
5.4.4 其他表示181
5.4.5 正号和负号183
5.4.6 常用计算184
5.4.7 指数和对数186
5.4.8 角190
5.4.9 三角函数191
5.4.10 双曲函数194
5.4.11 特殊函数195
第6章 文件系统197
6.1 os.path—平台独立的文件名管理198
6.1.1 解析路径198
6.1.2 建立路径200
6.1.3 规范化路径201
6.1.4 文件时间202
6.1.5 测试文件203
6.1.6 遍历一个目录树204
6.2 glob—文件名模式匹配205
6.2.1 示例数据205
6.2.2 通配符206
6.2.3 单字符通配符207
6.2.4 字符区间207
6.3 linecache—高效读取文本文件208
6.3.1 测试数据208
6.3.2 读取特定行209
6.3.3 处理空行209
6.3.4 错误处理210
6.3.5 读取Python源文件210
6.4 tempfile—临时文件系统对象211
6.4.1 临时文件211
6.4.2 命名文件213
6.4.3 临时目录214
6.4.4 预测名214
6.4.5 临时文件位置215
6.5 shutil—高级文件操作216
6.5.1 复制文件216
6.5.2 复制文件元数据218
6.5.3 处理目录树220
6.6 mmap—内存映射文件222
6.6.1 读文件223
6.6.2 写文件223
6.6.3 正则表达式225
6.7 codecs—字符串编码和解码226
6.7.1 Unicode入门226
6.7.2 处理文件228
6.7.3 字节序230
6.7.4 错误处理232
6.7.5 标准输入和输出流235
6.7.6 编码转换238
6.7.7 非Unicode编码239
6.7.8 增量编码240
6.7.9 Unicode数据和网络通信242
6.7.10 定义定制编码245
6.8 StringIO—提供类文件API的文本缓冲区251
6.9 fnmatch—UNIX式glob模式匹配252
6.9.1 简单匹配252
6.9.2 过滤253
6.9.3 转换模式254
6.10 dircache—缓存目录列表254
6.10.1 列出目录内容255
6.10.2 标注列表256
6.11 filecmp—比较文件257
6.11.1 示例数据258
6.11.2 比较文件260
6.11.3 比较目录261
6.11.4 程序中使用差异262
第7章 数据持久存储与交换267
7.1 pickle—对象串行化268
7.1.1 导入268
7.1.2 编码和解码字符串数据268
7.1.3 处理流269
7.1.4 重构对象的问题271
7.1.5 不可pickle的对象272
7.1.6 循环引用273
7.2 shelve—对象持久存储275
7.2.1 创建一个新shelf275
7.2.2 写回276
7.2.3 特定shelf类型277
7.3 anydbm—DBM数据库278
7.3.1 数据库类型278
7.3.2 创建一个新数据库279
7.3.3 打开一个现有数据库279
7.3.4 错误情况280
7.4 whichdb—识别DBM数据库格式281
7.5 sqlite3—嵌入式关系数据库281
7.5.1 创建数据库282
7.5.2 获取数据285
7.5.3 查询元数据286
7.5.4 行对象287
7.5.5 查询中使用变量288
7.5.6 批量加载290
7.5.7 定义新列类型291
7.5.8 确定列类型294
7.5.9 事务296
7.5.10 隔离级别298
7.5.11 内存中数据库302
7.5.12 导出数据库内容302
7.5.13 SQL中使用Python函数304
7.5.14 定制聚集306
7.5.15 定制排序307
7.5.16 线程和连接共享308
7.5.17 限制对数据的访问309
7.6 xml.etree.ElementTree—XML操纵API311
7.6.1 解析XML文档312
7.6.2 遍历解析树313
7.6.3 查找文档中的节点314
7.6.4 解析节点属性315
7.6.5 解析时监视事件317
7.6.6 创建一个定制树构造器319
7.6.7 解析串321
7.6.8 用元素节点构造文档322
7.6.9 美观打印XML323
7.6.10 设置元素属性325
7.6.11 由节点列表构造树327
7.6.12 将XML串行化至一个流329
7.7 csv—逗号分隔值文件331
7.7.1 读文件332
7.7.2 写文件332
7.7.3 方言334
7.7.4 使用字段名338
第8章 数据压缩与归档340
8.1 zlib—GNU zlib压缩340
8.1.1 处理内存中数据340
8.1.2 增量压缩与解压缩341
8.1.3 混合内容流342
8.1.4 校验和343
8.1.5 压缩网络数据343
8.2 gzip—读写GNU Zip文件347
8.2.1 写压缩文件348
8.2.2 读压缩数据349
8.2.3 处理流350
8.3 bz2—bzip2压缩352
8.3.1 内存中一次性操作352
8.3.2 增量压缩和解压缩354
8.3.3 混合内容流354
8.3.4 写压缩文件355
8.3.5 读压缩文件357
8.3.6 压缩网络数据358
8.4 tarfile—Tar归档访问362
8.4.1 测试Tar文件362
8.4.2 从归档文件读取元数据362
8.4.3 从归档抽取文件364
8.4.4 创建新归档365
8.4.5 使用候选归档成员名366
8.4.6 从非文件源写数据366
8.4.7 追加到归档367
8.4.8 处理压缩归档368
8.5 zipfile—ZIP归档访问369
8.5.1 测试ZIP文件369
8.5.2 从归档读取元数据369
8.5.3 从归档抽取归档文件371
8.5.4 创建新归档371
8.5.5 使用候选归档成员名373
8.5.6 从非文件源写数据373
8.5.7 利用ZipInfo实例写374
8.5.8 追加到文件375
8.5.9 Python ZIP归档376
8.5.10 限制377
第9章 加密378
9.1 hashlib—密码散列378
9.1.1 示例数据378
9.1.2 MD5示例379
9.1.3 SHA1示例379
9.1.4 按名创建散列379
9.1.5 增量更新380
9.2 hmac—密码消息签名与验证381
9.2.1 消息签名381
9.2.2 SHA与MD5382
9.2.3 二进制摘要383
9.2.4 消息签名的应用383
第10章 进程与线程387
10.1 subprocess—创建附加进程387
10.1.1 运行外部命令388
10.1.2 直接处理管道391
10.1.3 连接管道段393
10.1.4 与其他命令交互394
10.1.5 进程间传递信号396
10.2 signal—异步系统事件400
10.2.1 接收信号400
10.2.2 获取注册的处理程序401
10.2.3 发送信号402
10.2.4 闹铃403
10.2.5 忽略信号403
10.2.6 信号和线程404
10.3 threading—管理并发操作406
10.3.1 Thread对象406
10.3.2 确定当前线程407
10.3.3 守护与非守护线程409
10.3.4 列举所有线程411
10.3.5 派生线程412
10.3.6 定时器线程414
10.3.7 线程间传送信号415
10.3.8 控制资源访问416
10.3.9 同步线程421
10.3.10 限制资源的并发访问422
10.3.11 线程特定数据423
10.4 multiprocessing—像线程一样管理进程425
10.4.1 multiprocessing基础426
10.4.2 可导入的目标函数427
10.4.3 确定当前进程428
10.4.4 守护进程428
10.4.5 等待进程430
10.4.6 终止进程431
10.4.7 进程退出状态432
10.4.8 日志434
10.4.9 派生进程435
10.4.10 向进程传递消息435
10.4.11 进程间信号传输438
10.4.12 控制资源访问439
10.4.13 同步操作440
10.4.14 控制资源的并发访问441
10.4.15 管理共享状态443
10.4.16 共享命名空间444
10.4.17 进程池445
10.4.18 实现MapReduce447
第11章 网络通信452
11.1 socket—网络通信452
11.1.1 寻址、协议簇和套接字类型452
11.1.2 TCP/IP客户和服务器460
11.1.3 用户数据报客户和服务器467
11.1.4 UNIX域套接字469
11.1.5 组播473
11.1.6 发送二进制数据476
11.1.7 非阻塞通信和超时478
11.2 select—高效等待I/O 479
11.2.1 使用select()479
11.2.2 有超时的非阻塞I/O484
11.2.3 使用 poll()486
11.2.4 平台特定选项490
11.3 SocketServer—创建网络服务器491
11.3.1 服务器类型491
11.3.2 服务器对象491
11.3.3 实现服务器491
11.3.4 请求处理器492
11.3.5 回应示例492
11.3.6 线程和进程497
11.4 asyncore—异步I/O499
11.4.1 服务器500
11.4.2 客户501
11.4.3 事件循环503
11.4.4 处理其他事件循环505
11.4.5 处理文件507
11.5 asynchat—异步协议处理器508
11.5.1 消息终止符508
11.5.2 服务器和处理器508
11.5.3 客户511
11.5.4 集成512
第12章 Internet514
12.1 urlparse—分解URL514
12.1.1 解析515
12.1.2 反解析517
12.1.3 连接518
12.2 BaseHTTPServer—实现Web服务器的基类519
12.2.1 HTTP GET519
12.2.2 HTTP POST521
12.2.3 线程与进程522
12.2.4 处理错误523
12.2.5 设置首部524
12.3 urllib—网络资源访问525
12.3.1 利用缓存实现简单获取526
12.3.2 参数编码527
12.3.3 路径与URL529
12.4 urllib2—网络资源访问530
12.4.1 HTTP GET530
12.4.2 参数编码532
12.4.3 HTTP POST533
12.4.4 增加发出首部534
12.4.5 从请求提交表单数据535
12.4.6 上传文件536
12.4.7 创建定制协议处理器539
12.5 Base64—用ASCII编码二进制数据541
12.5.1 Base64编码541
12.5.2 Base64解码542
12.5.3 URL安全的变种543
12.5.4 其他编码543
12.6 robotparser—网络蜘蛛访问控制544
12.6.1 robots.txt545
12.6.2 测试访问权限545
12.6.3 长久蜘蛛546
12.7 Cookie—HTTP Cookie547
12.7.1 创建和设置Cookie547
12.7.2 Morsel548
12.7.3 编码值550
12.7.4 接收和解析Cookie首部550
12.7.5 候选输出格式551
12.7.6 废弃的类552
12.8 uuid—全局惟一标识符552
12.8.1 UUID 1—IEEE 802 MAC地址552
12.8.2 UUID 3和5—基于名字的值554
12.8.3 UUID 4—随机值556
12.8.4 处理UUID对象556
12.9 json—JavaScript对象记法557
12.9.1 编码和解码简单数据类型557
12.9.2 优质输出和紧凑输出558
12.9.3 编码字典560
12.9.4 处理定制类型561
12.9.5 编码器和解码器类563
12.9.6 处理流和文件565
12.9.7 混合数据流566
12.10 xmlrpclib—XML-RPC的客户端库567
12.10.1 连接服务器568
12.10.2 数据类型570
12.10.3 传递对象573
12.10.4 二进制数据573
12.10.5 异常处理575
12.10.6 将调用结合在一个消息中575
12.11 SimpleXMLRPCServer—一个XML-RPC服务器577
12.11.1 一个简单的服务器577
12.11.2 备用API名578
12.11.3 加点的API名 579
12.11.4 任意API名580
12.11.5 公布对象的方法581
12.11.6 分派调用583
12.11.7 自省API584
第13章 Email587
13.1 smtplib—简单邮件传输协议客户587
13.1.1 发送Email消息587
13.1.2 认证和加密589
13.1.3 验证Email地址592
13.2 smtpd—示例邮件服务器593
13.2.1 邮件服务器基类593
13.2.2 调试服务器595
13.2.3 代理服务器596
13.3 imaplib—IMAP4客户库596
13.3.1 变种597
13.3.2 连接到服务器597
13.3.3 示例配置598
13.3.4 列出邮箱599
13.3.5 邮箱状态601
13.3.6 选择邮箱602
13.3.7 搜索消息603
13.3.8 搜索规则604
13.3.9 获取消息605
13.3.10 完整消息608
13.3.11 上传消息609
13.3.12 移动和复制消息611
13.3.13 删除消息612
13.4 mailbox—管理邮件归档614
13.4.1 mbox614
13.4.2 Maildir616
13.4.3 其他格式622
第14章 应用构建模块623
14.1 getopt—命令行选项解析624
14.1.1 函数参数624
14.1.2 短格式选项624
14.1.3 长格式选项625
14.1.4 一个完整的例子625
14.1.5 缩写长格式选项627
14.1.6 GNU选项解析627
14.1.7 结束参数处理629
14.2 optparse—命令行选项解析器629
14.2.1 创建OptionParser629
14.2.2 短格式和长格式选项630
14.2.3 用getopt比较631
14.2.4 选项值632
14.2.5 选项动作635
14.2.6 帮助消息639
14.3 argparse—命令行选项和参数解析644
14.3.1 与optparse比较644
14.3.2 建立解析器644
14.3.3 定义参数644
14.3.4 解析命令行645
14.3.5 简单示例645
14.3.6 自动生成的选项652
14.3.7 解析器组织653
14.3.8 高级参数处理659
14.4 readline—GNU Readline库666
14.4.1 配置667
14.4.2 完成文本668
14.4.3 访问完成缓冲区670
14.4.4 输入历史674
14.4.5 hook676
14.5 getpass—安全密码提示677
14.5.1 示例677
14.5.2 无终端使用getpass678
14.6 cmd—面向行的命令处理器679
14.6.1 处理命令680
14.6.2 命令参数681
14.6.3 现场帮助682
14.6.4 自动完成683
14.6.5 覆盖基类方法684
14.6.6 通过属性配置Cmd 686
14.6.7 运行shell命令687
14.6.8 候选输入688
14.6.9 sys.argv的命令689
14.7 shlex—解析shell语法690
14.7.1 加引号的字符串691
14.7.2 嵌入注释692
14.7.3 分解693
14.7.4 包含其他Token源693
14.7.5 控制解析器694
14.7.6 错误处理696
14.7.7 POSIX与非POSIX解析697
14.8 ConfigParser—处理配置文件698
14.8.1 配置文件格式699
14.8.2 读取配置文件699
14.8.3 访问配置设置701
14.8.4 修改设置705
14.8.5 保存配置文件706
14.8.6 选项搜索路径707
14.8.7 用接合合并值709
14.9 日志—报告状态、错误和信息消息712
14.9.1 应用与库中的日志记录712
14.9.2 记入文件712
14.9.3 旋转日志文件713
14.9.4 详细级别714
14.9.5 命名日志记录器实例715
14.10 fileinput—命令行过滤器框架716
14.10.1 M3U文件转换为RSS716
14.10.2 进度元数据718
14.10.3 原地过滤719
14.11 atexit—程序关闭回调721
14.11.1 示例721
14.11.2 什么情况下不调用atexit函数722
14.11.3 处理异常724
14.12 sched—定时事件调度器725
14.12.1 有延迟地运行事件725
14.12.2 重叠事件726
14.12.3 事件优先级727
14.12.4 取消事件727
第15章 国际化和本地化729
15.1 gettext—消息编目729
15.1.1 转换工作流概述729
15.1.2 由源代码创建消息编目730
15.1.3 运行时查找消息编目732
15.1.4 复数值733
15.1.5 应用与模块本地化735
15.1.6 切换转换736
15.2 locale—文化本地化API736
15.2.1 探查当前本地化环境737
15.2.2 货币742
15.2.3 格式化数字742
15.2.4 解析数字743
15.2.5 日期和时间744
第16章 开发工具745
16.1 pydoc—模块的联机帮助746
16.1.1 纯文本帮助746
16.1.2 HTML帮助746
16.1.3 交互式帮助746
16.2 doctest—通过文档完成测试747
16.2.1 开始747
16.2.2 处理不可预测的输出748
16.2.3 Traceback752
16.2.4 避开空白符753
16.2.5 测试位置758
16.2.6 外部文档761
16.2.7 运行测试763
16.2.8 测试上下文766
16.3 unittest—自动测试框架769
16.3.1 基本测试结构769
16.3.2 运行测试770
16.3.3 测试结果770
16.3.4 断言真值772
16.3.5 测试相等性773
16.3.6 近似相等774
16.3.7 测试异常775
16.3.8 测试固件775
16.3.9 测试套件776
16.4 traceback—异常和栈轨迹777
16.4.1 支持函数777
16.4.2 处理异常777
16.4.3 处理栈780
16.5 cgitb—详细的traceback报告783
16.5.1 标准traceback转储783
16.5.2 启用详细traceback783
16.5.3 traceback中的局部变量785
16.5.4 异常属性787
16.5.5 HTML输出788
16.5.6 记录traceback789
16.6 pdb—交互式调试工具791
16.6.1 启动调试工具791
16.6.2 控制调试工具794
16.6.3 断点803
16.6.4 改变执行流813
16.6.5 用别名定制调试工具819
16.6.6 保存配置设置821
16.7 trace—执行程序流822
16.7.1 示例程序822
16.7.2 跟踪执行822
16.7.3 代码覆盖823
16.7.4 调用关系825
16.7.5 编程接口826
16.7.6 保存结果数据828
16.7.7 选项829
16.8 profile和pstats—性能分析830
16.8.1 运行性能分析工具830
16.8.2 在上下文中运行832
16.8.3 pstats:保存和处理统计信息833
16.8.4 限制报告内容835
16.8.5 调用图836
16.9 timeit—测量小段Python代码的执行时间837
16.9.1 模块内容837
16.9.2 基本示例837
16.9.3 值存储在字典中838
16.9.4 从命令行执行840
16.10 compileall—字节编译源文件841
16.10.1 编译一个目录842
16.10.2 编译sys.path842
16.10.3 从命令行执行843
16.11 pyclbr—类浏览器843
16.11.1 扫描类845
16.11.2 扫描函数846
第17章 运行时特性847
17.1 site—全站点配置847
17.1.1 导入路径847
17.1.2 用户目录849
17.1.3 路径配置文件850
17.1.4 定制站点配置852
17.1.5 定制用户配置853
17.1.6 禁用site模块854
17.2 sys—系统特定的配置854
17.2.1 解释器设置855
17.2.2 运行时环境860
17.2.3 内存管理和限制862
17.2.4 异常处理867
17.2.5 底层线程支持869
17.2.6 模块和导入875
17.2.7 跟踪程序运行情况892
17.3 os—可移植访问操作系统特定特性898
17.3.1 进程所有者898
17.3.2 进程环境900
17.3.3 进程工作目录901
17.3.4 管道901
17.3.5 文件描述符905
17.3.6 文件系统权限905
17.3.7 目录906
17.3.8 符号链接907
17.3.9 遍历目录树907
17.3.10 运行外部命令909
17.3.11 用os.fork()创建进程910
17.3.12 等待子进程911
17.3.13 Spawn913
17.3.14 文件系统权限913
17.4 platform—系统版本信息914
17.4.1 解释器915
17.4.2 平台916
17.4.3 操作系统和硬件信息916
17.4.4 可执行程序体系结构918
17.5 resource—系统资源管理918
17.5.1 当前使用情况919
17.5.2 资源限制919
17.6 gc—垃圾回收器922
17.6.1 跟踪引用922
17.6.2 强制垃圾回收925
17.6.3 查找无法收集的对象引用928
17.6.4 回收阈限和代931
17.6.5 调试933
17.7 sysconfig—解释器编译时配置940
17.7.1 配置变量940
17.7.2 安装路径942
17.7.3 Python版本和平台945
第18章 语言工具947
18.1 warnings—非致命警告947
18.1.1 分类和过滤948
18.1.2 生成警告948
18.1.3 用模式过滤949
18.1.4 重复的警告951
18.1.5 候选消息传送函数951
18.1.6 格式化952
18.1.7 警告中的栈层次952
18.2 abc—抽象基类953
18.2.1 为什么使用抽象基类953
18.2.2 抽象基类如何工作954
18.2.3 注册一个具体类954
18.2.4 通过派生实现955
18.2.5 abc中的具体方法956
18.2.6 抽象属性957
18.3 dis—Python字节码反汇编工具960
18.3.1 基本反汇编961
18.3.2 反汇编函数961
18.3.3 类963
18.3.4 使用反汇编进行调试963
18.3.5 循环的性能分析965
18.3.6 编译器优化970
18.4 inspect—检查现场对象972
18.4.1 示例模块972
18.4.2 模块信息973
18.4.3 检查模块974
18.4.4 检查类975
18.4.5 文档串 976
18.4.6 获取源代码977
18.4.7 方法和函数参数979
18.4.8 类层次结构980
18.4.9 方法解析顺序981
18.4.10 栈与帧982
18.5 exceptions—内置异常类984
18.5.1 基类985
18.5.2 产生的异常985
18.5.3 警告类型998
第19章 模块与包999
19.1 imp—Python的导入机制999
19.1.1 示例包999
19.1.2 模块类型999
19.1.3 查找模块1000
19.1.4 加载模块1001
19.2 zipimport—从ZIP归档加载Python代码1003
19.2.1 示例1003
19.2.2 查找模块1004
19.2.3 访问代码1004
19.2.4 源代码1005
19.2.5 包1006
19.2.6 数据1006
19.3 pkgutil—包工具1008
19.3.1 包导入路径1008
19.3.2 包的开发版本1010
19.3.3 用PKG文件管理路径1011
19.3.4 嵌套包1013
19.3.5 包数据1014