Python3标准库pdf下载pdf下载

Python3标准库百度网盘pdf下载

作者:
简介:本篇主要提供Python3标准库pdf下载
出版社:机械工业出版社
出版时间:2018-10
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

产品特色

编辑推荐

适读人群 :本书的读者应该是中等程度的Python程序员,所以尽管书中对所有源代码都做了讨论,却也只有少数情况会逐行给出解释。每一节都强调了模块的特性,并通过源代码以及完全独立的示例程序的输出来具体说明。本书还尽可能简洁地介绍了各个特性,使读者能够把重点放在所展示的模块或函数上,而不会因支持代码而分心。没有经验的程序员建议首先阅读《Python学习手册》(原书第5版)

(1)本书由资深Python专家亲自执笔,Python语言的核心开发人员鼎力推荐。

(2)对程序员而言,标准库与语言本身同样重要,它好比一个百宝箱,能为各种常见的任务提供完美的解决方案,所以本书是所有Python程序员都必备的工具书!全书以案例驱动的方式讲解了标准库中数百个模块的使用方法(如何工作)和工作原理(为什么要这样工作),比标准库的官方文档更容易理解(一个简单的示例比一份手册文档更有帮助),为Python程序员熟练掌握和使用这些模块提供了绝 *指导。

(3)本书针对Python3,介绍了Python3.x中新增的库、重大的功能变化,以及新的布局和命名约定。此外,书中还提供了专家级移植指导,可帮助你将代码从Python2.x标准库模块移植到相应的Python3.x标准库模块。

内容简介

本书共19章,系统而全面地对Python3标准库中的数百个模块进行了生动的讲解。这些模块主要包括:文本处理工具模块,与数据结构和算法相关的模块,管理日期和时间值的模块,用于数学计算的模块,管理文件系统的模块,用于数据存储与交换的模块,用于数据压缩与归档的模块,用于加密的模块,与进程和线程相关的模块,与网络通信、Internet和Email相关的模块,应用构建模块,支持处理多种自然语言和文化设置的模块,开发工具模块,与运行时特性相关的模块等。书中提供了大量示例来充分展示每一个特性,这些示例经过精心设计,以便于学习和重用。

本书适合作为Python程序员的必备参考书。


作者简介

道格·赫尔曼(DougHellmann)目前任职于RedHat,主要负责开发OpenStack项目。他是OpenStack技术委员会的委员,对这个项目的很多方面做出了突出贡献。他从Python1.4版本就开始投入Python编程,曾在多种UNIX和非UNIX 上参与项目开发,涉及领域包括地图、医疗新闻播报、金融和数据中心自动化。Doug也是PythonSoftwareFoundation的成员,并于2010~2012年担任其信息交流主管。在为《PythonMagazine》做了一年普通专栏作家后,他于2008~2009年担任该杂志的主编。2007~2011年间,Doug在他的博客上发表了颇受关注的“PythonModuleoftheWeek”系列,以及本书的上一个版本(面向Python2),即《Python标准库》(Addison-Wesley,2011)。

内页插图

精彩书评

Doug这些方法的过人之处在于,只需要每周15分钟,只需要有积极性,任何程序员都能掌握Python标准库。Doug带你踏上的Python标准库之旅会帮助你打开领略Python强大功能的大门。

—— RaymondHettinger,Python核心开发人员


目录

前言

第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


精彩书摘

自1991年首次发布以来,Python的用户群体便开始不断增长,Python也逐步成为开源开发中最受欢迎的编程语言之一。实际上,Python语言的最大优势并不是语言本身的特性,而是它拥有脚本语言中最丰富的第三方模块,这是其他任何语言都无法比拟的巨大优势。很多人学习和使用Python正是因为Python拥有某个非常适合其工作领域的简单易用的模块。

标准库中包含数百个模块,为常见任务提供了丰富的工具,可以用来作为应用开发的起点。学习这些模块时,简短的例子要比详尽的手册文档更有帮助。这也正是写作本书的出发点。

作为PythonSoftwareFoundation的成员,作者道格·赫尔曼(DougHellmann)从1.4版本开始就一直在做Python编程工作,曾在大量UNIX和非UNIX平台上参与项目开发,涉及众多领域,积累了丰富的经验。他全面研究了标准库的模块,并在他的博客“PythonModuleoftheWeek”中利用实际例子介绍各个模块应该如何使用。为满足人们迫切的需求,他将这些博客文章进一步整理完善,并在2011年出版了针对Python2的《Python标准库》。

当前,Python社区正在从Python2向Python3过渡。Python2与Python3之间存在很多不兼容性,特别是很多曾经的标准库模块在Python3中已经改名或者已经重新组织。鉴于此,时隔7年之后,终于有了这本《Python3标准库》,它主要强调Python3,同样沿袭《Python标准库》的风格,通过轻松的方式,帮助你从具体的例子、具体的实践中了解技术细节,在知道“怎样做”的同时还能理解“为什么这样做”。所有例子都已经在Python3.5上通过测试。


前言/序言

标准库会随每一版Python的发布而发布,其中包含数百个模块,为操作系统、解释器和互联网之间的交互提供了丰富的工具—所有这些模块都得到充分测试,可以用来作为应用开发的起点。本书会提供一些精选的例子,向你展示如何使用这些模块中最常用的一些特性,正是这些特性使Python有了“内含动力”(batteries included)的座右铭。这些例子均取自颇受关注的“Python Module of the Week(PyMOTW)”博客系列。

【本书读者对象 】

本书的读者应该是中等程度的Python程序员,所以尽管书中对所有源代码都做了讨论,却也只有少数情况会逐行给出解释。每一节都强调了模块的特性,并通过源代码以及完全独立的示例程序的输出来具体说明。本书还尽可能简洁地介绍了各个特性,使读者能够把重点放在所展示的模块或函数上,而不会因支持代码而分心。
熟悉其他语言的有经验的程序员可以利用本书来了解Python,但本书并不是关于Python语言的入门读物。研究这些例子时,如果之前有编写Python程序的经验,那么一定会很有帮助。
很多章节(比如介绍套接字网络编程或hmac加密的章节)还需要一些领域特定的知识。书中会提供解释这些例子所需的基本信息,不过由于标准库中模块涵盖的主题如此宽泛,所以不可能在一本书中全面地介绍每一个主题。在每个模块的讨论之后,还提供了一个推荐资源列表,大家可以进一步阅读这些资源,从中了解更多信息。推荐资源包括在线资源、RFC标准文档以及相关图书。

【Python 3与Python 2】
Python社区目前正在从Python 2向Python 3过渡。从主版本号可以看出,Python 2和Python 3有很多不兼容之处,而且这种不兼容不只是存在于语言中。Python 3中很多标准库模块都已经改名或者重新组织。
Python开发社区认识到这种不兼容可能需要一个很长的过渡期,最终Python库和工具的生态系统会更新为使用Python 3。尽管很多项目仍依赖于Python 2,但Python 2目前只接受安全更新,并且还计划在2020年前完全废弃。所有新特性都只能在Python 3版本中使用。
编写可以同时用于这两个版本的程序可能很有难度,但并不是全无可能。这样做通常要求检查程序在哪个Python版本下运行,并且在导入时使用不同的模块名,或者在调用类或函数时使用不同的参数。在标准库之外,已经有大量工具可以简化这个过程。为了保证本书中的例子尽可能简洁,同时仍然只依赖于标准库,我们将主要强调Python 3。所有例子已经在Python 3.5上通过测试(写作本书时3.x系列的当前版本),如果不加修改,可能无法用于Python 2。要查看专门为使用Python 2而设计的例子,请参考本书的Python 2版本《Python标准库》。
为了保证为每个例子提供清晰而简洁的描述,每一章不会过分强调Python 2和Python 3的差别。关于移植说明的附录会总结这两个版本之间一些最大的区别,这部分内容会合理组织,以便能有效地帮助从Python 2到Python 3的移植。

【本书组织结构】
http://docs.python.org上提供了详尽的参考指南,而本书可以作为补充,提供功能完备的示例程序来展示这里介绍的特性。模块被分组为不同章节,以便轻松查找单个模块作为参考,并且可以按主题浏览进行更深层次的探讨。尽管可能不会一页页地从头到尾阅读本书,但如果你确实想要这么做,那么为了预备这种情况,本书也做了合理的组织,尽可能不要求你“提前参考”还没有介绍过的模块,不过要想完全避免这种情况是不可能的。
下载示例代码
原来的博客文章和示例代码可以在https://pymotw.com/3/找到。本书勘误可以从作者的网站(https://doughellmann.com/blog/the-python-3-standard-library-by-example/)下载。