首页>参考读物>计算机科学与技术>软件与程序设计

Python标准库
作者 : (美)Doug Hellmann
译者 : 刘炽 等
出版日期 : 2012-06-11
ISBN : 978-7-111-37810-5
定价 : 139.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 1037
开本 : 16
原书名 : The Python Standard Library by Example
原出版社: Pearson Education Asia
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

Python标准库包含数百个模块,可以与操作系统、解释器和Internet交互-所有这些模块都经过了充分测试,可以直接投入你的应用开发。本书精心设计了大量示例以便于学习和重用,通过这些简洁、独立的源代码/输出示例,全面介绍了Python 2.7库的几乎每一个重要方面。

图书特色

通过大量精心挑选的示例掌握强大的Python标准库!

Python标准库包含数百个模块,可以用来与操作系统、解释器和Internet交互——所有这些模块都已经过充分测试,可以直接在日常开发中使用。本书精心设计了大量示例,以方便读者学习和使用标准库。
本书作者拥有12年以上Python开发经验,是Python软件基金会的信息交流主管,他的“Python Module of the Week”系列博客文章享誉整个Python社区,本书便是以这一系列博客文章为基础,以示例的方式展示了标准库中的每个模块是如何工作的以及为什么要这样工作。
在本书中,你会看到用来处理文本、数据类型、算法、数学计算、文件系统、网络通信、Internet、XML、Email、加密、并发性、运行时和语言服务等各个方面的实用代码和解决方案。在内容安排上,每一节都会全面介绍一个模块,并提供一些很有价值的补充资源链接,这使得本书成为一本理想的Python标准库参考手册。
本书涵盖以下内容:
用string、textwrap、re和difflib处理文本;
实现数据结构:collections、array、queue、struct、copy,等等;
读、写和管理文件及目录;
正则表达式模式匹配;
交换数据和提供持久存储;
归档和数据压缩;
管理进程和线程;
使用应用“构建模块”:解析命令行选项、提示输入密码、调度事件和日志记录;
测试、调试和编译;
控制运行时配置;
使用模块和包工具。
如果你刚接触Python,本书将带你迅速进入一个全新的世界。如果你以前用过Python,你会发现一些新的强大的解决方案,对于你之前尝试过的模块,你会发现更好的用法。

“Hellmann的作品已经成为我和Python社区其他人不可缺少的必备资源,因为它填补了Python文档的一个重大空白:对例子的迫切需求。”
—— Jesse Noller
Python核心开发人员及PSF Board成员

作者简介









资深Python专家、Python软件基金会信息交流主管,拥有12年以上的Python开发经验。曾在多种平台上参与Python项目的开发,涉及地图、医疗新闻播报、金融和数据中心自动化等多个领域。他精心撰写的“Python Module of the Week”系列博客文章在全球Python社区都有非常大的影响力,广受赞誉。此外,他还曾是《Python Magazine》杂志的专栏作家和主编。

图书前言

随每个Python版本的发布会同时发布标准库,标准库包含数百个模块,为操作系统、解释器和互联网之间的交互提供了丰富的工具。所有这些模块都得到充分测试,可以用来作为应用开发的起点。本书会提供一些精选的例子,展示如何使用这些模块中最常用的一些特性,正是这些特性使Python有了“内含动力”的口号。这些例子均取自流行的“Python Module of the Week (PyMOTW)”博客系列。
本书读者对象
  本书的读者应该是中等水平的Python程序员,所以尽管书中对所有源代码都做了讨论,但只有一部分会逐行给出解释。每节会通过源代码和完全独立的示例程序的输出来重点介绍一个模块的特性。我会尽可能简洁地介绍各个特性,使读者能够把重点放在所展示的模块或函数上,而不会因支持代码而分心。
  熟悉其他语言的有经验的程序员可以从本书了解Python,不过本书并不是这种语言的入门读物。研究这些例子时,如果之前对编写Python程序有些经验会很有帮助。
  有些章节(比如6.7.9节和9.2节)还需要一些领域特定的知识。这里会提供解释这些例子所需的基本信息,不过由于标准库中模块涵盖的主题如此宽泛,因此不可能在一本书中全面地介绍每一个主题。在每个模块的讨论之后,还提供一个推荐资源列表,可以进一步阅读这些资源,从中了解更多信息。其中包括在线资源、RFC标准文档以及相关图书。
  尽管目前向Python 3的过渡正在进行当中,Python 2仍可能是这几年生产环境中使用的主要Python版本,这是因为存在大量遗留Python 2源代码,另外向Python 3过渡的速度相当迟缓。本书中所有例子的源代码都由原来的在线版本做了更新,并用Python 2.7(这是Python 2.x系列的最后一个版本)进行了测试。很多示例程序完全可以在Python 3下工作,不过有些例子涉及的模块已经改名或者已经废弃。
本书组织结构
  模块均分组在不同章中介绍,以便查找单个模块来加以引用,并且可以按主题浏览做更深层次的探讨。相对于http://docs.python.org上全面的参考指南,本书可以作为补充,提供完全可用的示例程序来展示参考指南中介绍的特性。
下载示例代码
  原来的博客文章、本书勘误以及示例代码都可以从作者的网站(http://www.doughellmann.com/books/byexample)下载。
致谢
  如果没有大家的贡献和支持,本书绝无可能出现。
  1997年Dick Wall让我第一次接触到Python,那时我们正在ERDAS一起合作开发GIS软件。我记得,当我发现这样一门如此简便易用的新工具语言时,立刻就喜欢上了它,还对公司不让我们用它来完成“实际工作”颇有不满。在接下来的所有工作中我都大量使用了Python,我要感谢Dick,正是因为他,给我以后的软件开发带来许多快乐时光。
  Python核心开发小组创建了一个由语言、工具和库共同构建的健壮的生态系统,这些库在日益普及,还在不断发现新的应用领域。如果没有他们付出的宝贵时间,没有他们提供的丰富资源,我们都还得花时间一次又一次地一切从头开始。
  正如前言中所说的,本书中的材料最初是一系列博客文章。每篇文章都得到了Python社区成员的审阅和评论,有纠正,有建议,也有问题,这些评论促使我做出修改,这才有了读者手上这本书。感谢大家每周都花时间来阅读我的博客,谢谢大家的关注。
  本书的技术审校人员— Matt Culbreth、Katie Cunningham、Jeff McNeil和Keyton Weissinger—花了大量时间查找示例代码和相关解释中存在的问题。最终的作品远比我靠一人之力得到的结果强得多。我还得到了Jesse Noller对于multiprocessing模块以及Brett Cannon关于创建定制导入工具提出的很多建议。
  还要特别感谢Pearson的编辑和制作人员,感谢大家辛苦的工作和一贯的支持,帮助我明确本书的目标。
  最后,我要感谢我的妻子Theresa Flynn,她总是能提出最棒的写作建议,在完成本书的整个过程中,她都一如既往地鼓励我、支持我。当她告诉我,“要知道,某些情况下你要坐下来把它写出来”,我真的很佩服她能如此洞察一切。下面轮到你了。
关于作者
  Doug Hellmann目前是Racemi公司的一位高级开发人员,也是Python Software Foundation的信息交流主管。从1.4版开始他就一直在做Python编程,曾在大量UNIX和非UNIX平台上参与项目开发,涉及领域包括地图、医疗新闻播报、金融和数据中心自动化。为《Python Magazine》做了一年普通专栏作家后,他在2008—2009年成为这家杂志的主编。自2007年以来,Doug在他的博客上发表了颇受关注的“Python Module of the Week”系列。他居住在乔治亚州的Athens。

上架指导

计算机\程序设计

封底文字

通过大量精心挑选的示例掌握强大的Python标准库!

Python标准库包含数百个模块,可以用来与操作系统、解释器和Internet交互——所有这些模块都已经过充分测试,可以直接在日常开发中使用。本书精心设计了大量示例,以方便读者学习和使用标准库。
本书作者拥有12年以上Python开发经验,是Python软件基金会的信息交流主管,他的“Python Module of the Week”系列博客文章享誉整个Python社区,本书便是以这一系列博客文章为基础,以示例的方式展示了标准库中的每个模块是如何工作的以及为什么要这样工作。
在本书中,你会看到用来处理文本、数据类型、算法、数学计算、文件系统、网络通信、Internet、XML、Email、加密、并发性、运行时和语言服务等各个方面的实用代码和解决方案。在内容安排上,每一节都会全面介绍一个模块,并提供一些很有价值的补充资源链接,这使得本书成为一本理想的Python标准库参考手册。
本书涵盖以下内容:
? 用string、textwrap、re和difflib处理文本;
? 实现数据结构:collections、array、queue、struct、copy,等等;
? 读、写和管理文件和目录;
? 正则表达式模式匹配;
? 交换数据和提供持久存储;
? 归档和数据压缩;
? 管理进程和线程;
? 使用应用“构建模块”:解析命令行选项、提示输入密码、调度事件和日志记录;
? 测试、调试和编译;
? 控制运行时配置;
? 使用模块和包工具。
如果你刚接触Python,本书将带你迅速进入一个全新的世界。如果你以前用过Python,你会发现一些新的强大的解决方案,对于你之前尝试过的模块,你会发现更好的用法。

作者简介

(美)Doug Hellmann:Doug Hellmann目前是Racemi公司的一位高级开发人员,也是Python Software Foundation的信息交流主管。从1.4版本开始他就一直在做Python编程,曾在大量UNIX和非UNIX平台上参与项目开发,涉及领域包括地图、医疗新闻播报、金融和数据中心自动化。曾担任《Python Magazine》专栏作家和主编。自2007年以来,在他的博客上发表了颇受关注的“Python Module of the Week”系列。他居住在佐治亚州的Athens。

译者简介

刘炽 等:暂无简介

译者序

Python的设计哲学是“优雅”、“明确”、“简单”。因此,Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。不仅如此,Python设计为一种可扩展的语言,并非所有的特性和功能都集成到语言核心。随Python附带安装有Python标准库,标准库包含大量极其有用的模块。熟悉Python标准库十分重要,因为如果熟悉这些库中的模块,那么大多数问题都可以简单快捷地使用它们来解决。
  标准库包含数百个模块,为常见任务提供了丰富的工具,可以用来作为应用开发的起点。也许有人发现一个模块正是他想要的,但是不知道如何来使用;也许有人为他的任务挑选了不合适的模块,也可能已经厌倦了一切从头开始。大多时候,一个简短的例子要比一份手册文档更有帮助。这正是本书的出发点。本书会提供一些精选的例子,展示如何使用这些模块中最常用的一些特性。相信你在使用Python时遇到的问题都能在本书中得到解答。
  本书作者从1.4版开始就一直在从事Python编程方面的工作,他正是享有盛誉的博客系列“Python Module of the Week”的博主。在这个博客中,他全面研究了标准库的众多模块,利用实际例子来介绍各个模块如何工作。相信很多人已经从他的博客中受益。为满足人们的迫切需求,他把这些博客文章进一步整理完善,形成了你手上的这本书。
  本书沿袭了博客的叙事风格,Doug Hellmann通过轻松的方式,让你从具体的例子、具体的实践中了解技术细节,在知道“怎样做”的同时还能理解“为什么这样做”。相信你已经迫不及待地想要翻开下一页了,那么,进入Doug的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

教学资源推荐
作者: 钱丽萍 汪立东 张健 编著
作者: 郑阿奇 梁敬东 主编 朱毅华 时跃华 赵青松 编著
作者: 哈罗德·阿贝尔森(Harold Abelson)[美] 杰拉尔德•杰伊·萨斯曼(Gerald Jay Sussman) 著朱莉·萨斯曼(Julie Sussman)
参考读物推荐