Skip to content

《Python3 标准库》电子书和配套代码 "The Python Standard Library by Example" ebook and source code 一本又厚又全的讲解Python3标准库的书籍(1000多页)适合当作字典参考或者闲暇时慢慢阅读。

Notifications You must be signed in to change notification settings

BurakaKrishna/The-Python-Standard-Library-by-Example

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Python Standard Library by Example | Python3 标准库

"The Python Standard Library by Example" ebook and source code

《Python3 标准库》电子书和配套代码

一本又厚又全的讲解Python3标准库的书籍(1000多页)!适合当作字典参考或者闲暇时慢慢阅读。

电子书见本仓库中:The Python Standard Library by Example.pdf

中文版本

English version

目录

  • 译者序
  • 前言
  • 第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和fill 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 difflib:比较序列 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.1.1 Decimal 188
  • 5.1.2 格式化 189
  • 5.1.3 算术运算 190
  • 5.1.4 特殊值 191
  • 5.1.5 上下文 192
  • 5.2 fractions:有理数 196
  • 5.2.1 创建Fraction实例 197
  • 5.2.2 算术运算 198
  • 5.2.3 近似值 199
  • 5.3 random:伪随机数生成器 199
  • 5.3.1 生成随机数 200
  • 5.3.2 指定种子 200
  • 5.3.3 保存状态 201
  • 5.3.4 随机整数 202
  • 5.3.5 选择随机元素 203
  • 5.3.6 排列 203
  • 5.3.7 采样 205
  • 5.3.8 多个并发生成器 205
  • 5.3.9 SystemRandom 206
  • 5.3.10 非均匀分布 207
  • 5.4 math:数学函数 208
  • 5.4.1 特殊常量 208
  • 5.4.2 测试异常值 208
  • 5.4.3 比较 210
  • 5.4.4 将浮点值转换为整数 212
  • 5.4.5 浮点值的其他表示 213
  • 5.4.6 正号和负号 214
  • 5.4.7 常用计算 215
  • 5.4.8 指数和对数 218
  • 5.4.9 角 222
  • 5.4.10 三角函数 224
  • 5.4.11 双曲函数 226
  • 5.4.12 特殊函数 227
  • 5.5 statistics:统计计算 228
  • 5.5.1 平均值 228
  • 5.5.2 方差 230
  • 第6章 文件系统 232
  • 6.1 os.path:平台独立的文件名管理 233
  • 6.1.1 解析路径 233
  • 6.1.2 建立路径 236
  • 6.1.3 规范化路径 237
  • 6.1.4 文件时间 238
  • 6.1.5 测试文件 238
  • 6.2 pathlib:文件系统路径作为对象 240
  • 6.2.1 路径表示 240
  • 6.2.2 建立路径 240
  • 6.2.3 解析路径 242
  • 6.2.4 创建具体路径 243
  • 6.2.5 目录内容 244
  • 6.2.6 读写文件 246
  • 6.2.7 管理目录和符号链接 246
  • 6.2.8 文件类型 247
  • 6.2.9 文件属性 248
  • 6.2.10 权限 250
  • 6.2.11 删除 250
  • 6.3 glob:文件名模式匹配 252
  • 6.3.1 示例数据 252
  • 6.3.2 通配符 252
  • 6.3.3 单字符通配符 253
  • 6.3.4 字符区间 253
  • 6.3.5 转义元字符 254
  • 6.4 fnmatch:UNIX式glob模式匹配 254
  • 6.4.1 简单匹配 254
  • 6.4.2 过滤 255
  • 6.4.3 转换模式 256
  • 6.5 linecache:高效读取文本文件 257
  • 6.5.1 测试数据 257
  • 6.5.2 读取特定行 257
  • 6.5.3 处理空行 258
  • 6.5.4 错误处理 258
  • 6.5.5 读取Python源文件 259
  • 6.6 tempfile:临时文件系统对象 260
  • 6.6.1 临时文件 260
  • 6.6.2 命名文件 262
  • 6.6.3 假脱机文件 262
  • 6.6.4 临时目录 263
  • 6.6.5 预测名 264
  • 6.6.6 临时文件位置 264
  • 6.7 shutil:高层文件操作 265
  • 6.7.1 复制文件 265
  • 6.7.2 复制文件元数据 268
  • 6.7.3 处理目录树 269
  • 6.7.4 查找文件 271
  • 6.7.5 归档 272
  • 6.7.6 文件系统空间 275
  • 6.8 filecmp:比较文件 276
  • 6.8.1 示例数据 276
  • 6.8.2 比较文件 278
  • 6.8.3 比较目录 279
  • 6.8.4 在程序中使用差异 280
  • 6.9 mmap:内存映射文件 283
  • 6.9.1 读文件 284
  • 6.9.2 写文件 285
  • 6.9.3 正则表达式 286
  • 6.10 codecs:字符串编码和解码 287
  • 6.10.1 Unicode入门 287
  • 6.10.2 处理文件 289
  • 6.10.3 字节序 291
  • 6.10.4 错误处理 293
  • 6.10.5 编码转换 295
  • 6.10.6 非Unicode编码 296
  • 6.10.7 增量编码 297
  • 6.10.8 Unicode数据和网络通信 299
  • 6.10.9 定义定制编码 301
  • 6.11 io:文本、十进制和原始流I/O工具 307
  • 6.11.1 内存中的流 307
  • 6.11.2 为文本数据包装字节流 308
  • 第7章 数据持久存储与交换 310
  • 7.1 pickle:对象串行化 311
  • 7.1.1 编码和解码字符串中的数据 311
  • 7.1.2 处理流 312
  • 7.1.3 重构对象的问题 313
  • 7.1.4 不可腌制的对象 314
  • 7.1.5 循环引用 316
  • 7.2 shelve:对象的持久存储 318
  • 7.2.1 创建一个新shelf 318
  • 7.2.2 写回 319
  • 7.2.3 特定shelf类型 320
  • 7.3 dbm:UNIX键-值数据库 320
  • 7.3.1 数据库类型 321
  • 7.3.2 创建一个新数据库 321
  • 7.3.3 打开一个现有数据库 322
  • 7.3.4 错误情况 322
  • 7.4 sqlite3:嵌入式关系数据库 323
  • 7.4.1 创建数据库 323
  • 7.4.2 获取数据 326
  • 7.4.3 查询元数据 327
  • 7.4.4 行对象 328
  • 7.4.5 在查询中使用变量 329
  • 7.4.6 批量加载 331
  • 7.4.7 定义新的列类型 331
  • 7.4.8 确定列类型 334
  • 7.4.9 事务 336
  • 7.4.10 隔离级别 338
  • 7.4.11 内存中的数据库 341
  • 7.4.12 导出数据库内容 341
  • 7.4.13 在SQL中使用Python函数 342
  • 7.4.14 带正则表达式的查询 344
  • 7.4.15 定制聚集 345
  • 7.4.16 线程和连接共享 346
  • 7.4.17 限制对数据的访问 347
  • 7.5 xml.etree.ElementTree:XML操纵API 349
  • 7.5.1 解析XML文档 349
  • 7.5.2 遍历解析树 350
  • 7.5.3 查找文档中的节点 351
  • 7.5.4 解析节点属性 352
  • 7.5.5 解析时监视事件 354
  • 7.5.6 创建一个定制树构造器 356
  • 7.5.7 解析串 357
  • 7.5.8 用元素节点构造文档 359
  • 7.5.9 美观打印XML 359
  • 7.5.10 设置元素属性 360
  • 7.5.11 由节点列表构造树 362
  • 7.5.12 将XML串行化至一个流 364
  • 7.6 csv:逗号分隔值文件 366
  • 7.6.1 读文件 366
  • 7.6.2 写文件 367
  • 7.6.3 方言 368
  • 7.6.4 使用字段名 373
  • 第8章 数据压缩与归档 375
  • 8.1 zlib:GNU zlib压缩 375
  • 8.1.1 处理内存中的数据 375
  • 8.1.2 增量压缩与解压缩 377
  • 8.1.3 混合内容流 378
  • 8.1.4 校验和 378
  • 8.1.5 压缩网络数据 379
  • 8.2 gzip:读写GNU zip文件 382
  • 8.2.1 写压缩文件 382
  • 8.2.2 读压缩数据 384
  • 8.2.3 处理流 385
  • 8.3 bz2:bzip2压缩 386
  • 8.3.1 内存中的一次性操作 386
  • 8.3.2 增量压缩和解压缩 388
  • 8.3.3 混合内容流 388
  • 8.3.4 写压缩文件 389
  • 8.3.5 读压缩文件 390
  • 8.3.6 读写Unicode数据 391
  • 8.3.7 压缩网络数据 392
  • 8.4 tarfile:tar归档访问 395
  • 8.4.1 测试tar文件 396
  • 8.4.2 从归档读取元数据 396
  • 8.4.3 从归档抽取文件 397
  • 8.4.4 创建新归档 399
  • 8.4.5 使用候选归档成员名 399
  • 8.4.6 从非文件源写数据 400
  • 8.4.7 追加到归档 400
  • 8.4.8 处理压缩归档 401
  • 8.5 zipfile:ZIP归档访问 402
  • 8.5.1 测试ZIP文件 402
  • 8.5.2 从归档读取元数据 402
  • 8.5.3 从归档抽取归档文件 404
  • 8.5.4 创建新归档 404
  • 8.5.5 使用候选归档成员名 406
  • 8.5.6 从非文件源写数据 406
  • 8.5.7 利用ZipInfo实例写数据 407
  • 8.5.8 追加到文件 407
  • 8.5.9 Python ZIP归档 408
  • 8.5.10 限制 410
  • 第9章 加密 411
  • 9.1 hashlib:密码散列 411
  • 9.1.1 散列算法 411
  • 9.1.2 示例数据 412
  • 9.1.3 MD5示例 412
  • 9.1.4 SHA1示例 412
  • 9.1.5 按名创建散列 413
  • 9.1.6 增量更新 413
  • 9.2 hmac:密码消息签名与验证 414
  • 9.2.1 消息签名 415
  • 9.2.2 候选摘要类型 415
  • 9.2.3 二进制摘要 416
  • 9.2.4 消息签名的应用 416
  • 第 10 章 使用进程、线程和协程提供并发性 420
  • 10.1 subprocess:创建附加进程 420
  • 10.1.1 运行外部命令 421
  • 10.1.2 直接处理管道 425
  • 10.1.3 连接管道段 427
  • 10.1.4 与其他命令交互 428
  • 10.1.5 进程间传递信号 430
  • 10.2 signal:异步系统事件 434
  • 10.2.1 接收信号 434
  • 10.2.2 获取已注册的处理器 435
  • 10.2.3 发送信号 436
  • 10.2.4 闹铃 436
  • 10.2.5 忽略信号 437
  • 10.2.6 信号和线程 438
  • 10.3 threading:进程中管理并发操作 440
  • 10.3.1 Thread对象 440
  • 10.3.2 确定当前线程 441
  • 10.3.3 守护与非守护线程 442
  • 10.3.4 枚举所有线程 444
  • 10.3.5 派生线程 445
  • 10.3.6 定时器线程 447
  • 10.3.7 线程间传送信号 447
  • 10.3.8 控制资源访问 449
  • 10.3.9 同步线程 453
  • 10.3.10 限制资源的并发访问 456
  • 10.3.11 线程特定的数据 457
  • 10.4 multiprocessing:像线程一样管理进程 459
  • 10.4.1 multiprocessing基础 460
  • 10.4.2 可导入的目标函数 461
  • 10.4.3 确定当前进程 461
  • 10.4.4 守护进程 462
  • 10.4.5 等待进程 463
  • 10.4.6 终止进程 465
  • 10.4.7 进程退出状态 466
  • 10.4.8 日志 467
  • 10.4.9 派生进程 469
  • 10.4.10 向进程传递消息 469
  • 10.4.11 进程间信号传输 472
  • 10.4.12 控制资源访问 473
  • 10.4.13 同步操作 474
  • 10.4.14 控制资源的并发访问 475
  • 10.4.15 管理共享状态 476
  • 10.4.16 共享命名空间 477
  • 10.4.17 进程池 479
  • 10.4.18 实现MapReduce 480
  • 10.5 asyncio:异步I/O、事件循环和并发工具 484
  • 10.5.1 异步并发概念 484
  • 10.5.2 利用协程合作完成多任务 485
  • 10.5.3 调度常规函数调用 488
  • 10.5.4 异步地生成结果 490
  • 10.5.5 并发地执行任务 492
  • 10.5.6 组合协程和控制结构 495
  • 10.5.7 同步原语 499
  • 10.5.8 提供协议类抽象的异步I/O 505
  • 10.5.9 使用协程和流的异步I/O 510
  • 10.5.10 使用SSL 514
  • 10.5.11 与域名服务交互 516
  • 10.5.12 使用子进程 518
  • 10.5.13 接收UNIX信号 523
  • 10.5.14 结合使用协程、线程与进程 525
  • 10.5.15 用asyncio调试 527
  • 10.6 concurrent.futures:管理并发任务池 530
  • 10.6.1 利用基本线程池使用map() 531
  • 10.6.2 调度单个任务 532
  • 10.6.3 按任意顺序等待任务 532
  • 10.6.4 Future回调 533
  • 10.6.5 撤销任务 534
  • 10.6.6 任务中的异常 535
  • 10.6.7 上下文管理器 536
  • 10.6.8 进程池 537
  • 第 11 章 网络通信 539
  • 11.1 ipaddress:Internet地址 539
  • 11.1.1 地址 539
  • 11.1.2 网络 540
  • 11.1.3 接口 543
  • 11.2 socket:网络通信 544
  • 11.2.1 寻址、协议簇和套接字类型 544
  • 11.2.2 TCP/IP客户和服务器 552
  • 11.2.3 用户数据报客户和服务器 558
  • 11.2.4 UNIX域套接字 560
  • 11.2.5 组播 563
  • 11.2.6 发送二进制数据 566
  • 11.2.7 非阻塞通信和超时 568
  • 11.3 selectors:I/O多路复用抽象 568
  • 11.3.1 操作模型 569
  • 11.3.2 回送服务器 569
  • 11.3.3 回送客户 570
  • 11.3.4 服务器和客户 571
  • 11.4 select:高效等待I/O 572
  • 11.4.1 使用select() 572
  • 11.4.2 带超时的非阻塞I/O 577
  • 11.4.3 使用poll() 579
  • 11.4.4 平台特定的选项 582
  • 11.5 socketserver:创建网络服务器 583
  • 11.5.1 服务器类型 583
  • 11.5.2 服务器对象 583
  • 11.5.3 实现服务器 584
  • 11.5.4 请求处理器 584
  • 11.5.5 回送示例 584
  • 11.5.6 线程和进程 588
  • 第 12 章 互联网 592
  • 12.1 urllib.parse:分解URL 592
  • 12.1.1 解析 593
  • 12.1.2 反解析 595
  • 12.1.3 连接 596
  • 12.1.4 解码查询参数 597
  • 12.2 urllib.request:网络资源访问 599
  • 12.2.1 HTTP GET 599
  • 12.2.2 编码参数 600
  • 12.2.3 HTTP POST 601
  • 12.2.4 添加发出首部 602
  • 12.2.5 从请求提交表单数据 602
  • 12.2.6 上传文件 603
  • 12.2.7 创建定制协议处理器 606
  • 12.3 urllib.robotparser: Internet蜘蛛访问控制 * 608
  • 12.3.1 robots.txt 608
  • 12.3.2 测试访问权限 609
  • 12.3.3 长寿命蜘蛛 610
  • 12.4 base64:用ASCII编码二进制数据 611
  • 12.4.1 Base64编码 611
  • 12.4.2 Base64解码 612
  • 12.4.3 URL安全的变种 612
  • 12.4.4 其他编码 613
  • 12.5 http.server:实现Web服务器的基类 615
  • 12.5.1 HTTP GET 615
  • 12.5.2 HTTP POST 616
  • 12.5.3 线程和进程 618
  • 12.5.4 处理错误 619
  • 12.5.5 设置首部 620
  • 12.5.6 命令行用法 621
  • 12.6 http.cookies:HTTP cookie 622
  • 12.6.1 创建和设置cookie 622
  • 12.6.2 Morsel 622
  • 12.6.3 编码的值 624
  • 12.6.4 接收和解析Cookie首部 624
  • 12.6.5 候选输出格式 625
  • 12.7 webbrowser:显示Web页面 626
  • 12.7.1 简单示例 626
  • 12.7.2 窗口与标签页 626
  • 12.7.3 使用特定浏览器 627
  • 12.7.4 BROWSER变量 627
  • 12.7.5 命令行接口 627
  • 12.8 uuid:全局唯一标识符 628
  • 12.8.1 UUID 1:IEEE 802 MAC地址 628
  • 12.8.2 UUID 3和5:基于名字的值 630
  • 12.8.3 UUID 4:随机值 631
  • 12.8.4 处理UUID对象 631
  • 12.9 json:JavaScript对象记法 632
  • 12.9.1 编码和解码简单数据类型 633
  • 12.9.2 人类可读和紧凑输出 633
  • 12.9.3 编码字典 635
  • 12.9.4 处理定制类型 636
  • 12.9.5 编码器和解码器类 638
  • 12.9.6 处理流和文件 640
  • 12.9.7 混合数据流 641
  • 12.9.8 命令行上处理JSON 641
  • 12.10 xmlrpc.client:XML-RPC的客户库 642
  • 12.10.1 连接服务器 643
  • 12.10.2 数据类型 645
  • 12.10.3 传递对象 648
  • 12.10.4 二进制数据 648
  • 12.10.5 异常处理 650
  • 12.10.6 将调用组合在一个消息中 650
  • 12.11 xmlrpc.server:一个XML-RPC服务器 652
  • 12.11.1 一个简单的服务器 652
  • 12.11.2 候选API名 653
  • 12.11.3 加点的API名 654
  • 12.11.4 任意API名 655
  • 12.11.5 公布对象的方法 656
  • 12.11.6 分派调用 657
  • 12.11.7 自省API 659
  • 第 13 章 email 662
  • 13.1 smtplib:简单邮件传输协议客户 662
  • 13.1.1 发送email消息 662
  • 13.1.2 认证和加密 663
  • 13.1.3 验证email地址 666
  • 13.2 smtpd:示例邮件服务器 667
  • 13.2.1 邮件服务器基类 667
  • 13.2.2 调试服务器 669
  • 13.2.3 代理服务器 670
  • 13.3 mailbox:管理email归档 670
  • 13.3.1 mbox 671
  • 13.3.2 Maildir 673
  • 13.3.3 消息标志 678
  • 13.3.4 其他格式 680
  • 13.4 imaplib:IMAP4客户库 680
  • 13.4.1 变种 680
  • 13.4.2 连接服务器 681
  • 13.4.3 示例配置 682
  • 13.4.4 列出邮箱 682
  • 13.4.5 邮箱状态 684
  • 13.4.6 选择邮箱 686
  • 13.4.7 搜索消息 686
  • 13.4.8 搜索规则 687
  • 13.4.9 获取消息 689
  • 13.4.10 完整消息 693
  • 13.4.11 上传消息 694
  • 13.4.12 移动和复制消息 695
  • 13.4.13 删除消息 696
  • 第 14 章 应用构建模块 699
  • 14.1 argparse:命令行选项和参数解析 700
  • 14.1.1 建立解析器 700
  • 14.1.2 定义参数 700
  • 14.1.3 解析命令行 700
  • 14.1.4 简单示例 701
  • 14.1.5 帮助输出 707
  • 14.1.6 解析器组织 711
  • 14.1.7 高级参数处理 716
  • 14.2 getopt:命令行选项解析 722
  • 14.2.1 函数参数 722
  • 14.2.2 短格式选项 723
  • 14.2.3 长格式选项 723
  • 14.2.4 一个完整的例子 723
  • 14.2.5 缩写长格式选项 725
  • 14.2.6 GNU式选项解析 725
  • 14.2.7 结束参数处理 726
  • 14.3 readline:GNU readline库 727
  • 14.3.1 配置readline 727
  • 14.3.2 完成文本 728
  • 14.3.3 访问完成缓冲区 731
  • 14.3.4 输入历史 733
  • 14.3.5 hook 736
  • 14.4 getpass:安全密码提示 737
  • 14.4.1 示例 737
  • 14.4.2 无终端使用getpass 738
  • 14.5 cmd:面向行的命令处理器 739
  • 14.5.1 处理命令 739
  • 14.5.2 命令参数 740
  • 14.5.3 现场帮助 741
  • 14.5.4 自动完成 742
  • 14.5.5 覆盖基类方法 744
  • 14.5.6 通过属性配置Cmd 745
  • 14.5.7 运行shell命令 746
  • 14.5.8 候选输入 747
  • 14.5.9 sys.argv的命令 748
  • 14.6 shlex:解析shell类语法 749
  • 14.6.1 解析加引号的字符串 749
  • 14.6.2 为shell建立安全的字符串 751
  • 14.6.3 嵌入注释 751
  • 14.6.4 将字符串分解为token 752
  • 14.6.5 包含其他token源 752
  • 14.6.6 控制解析器 753
  • 14.6.7 错误处理 755
  • 14.6.8 POSIX与非POSIX解析 756
  • 14.7 configparser:处理配置文件 757
  • 14.7.1 配置文件格式 757
  • 14.7.2 读取配置文件 758
  • 14.7.3 访问配置设置 759
  • 14.7.4 修改设置 765
  • 14.7.5 保存配置文件 766
  • 14.7.6 选项搜索路径 767
  • 14.7.7 用拼接合并值 768
  • 14.8 logging:报告状态、错误和信息消息 772
  • 14.8.1 日志系统的组成 773
  • 14.8.2 应用与库中的日志记录 773
  • 14.8.3 记入文件 773
  • 14.8.4 旋转日志文件 774
  • 14.8.5 详细级别 774
  • 14.8.6 命名日志记录器实例 776
  • 14.8.7 日志树 776
  • 14.8.8 与warnings模块集成 777
  • 14.9 fileinput:命令行过滤器框架 778
  • 14.9.1 将m3u文件转换为RSS 778
  • 14.9.2 进度元数据 779
  • 14.9.3 原地过滤 781
  • 14.10 atexit:程序关闭回调 782
  • 14.10.1 注册退出回调 782
  • 14.10.2 修饰符语法 783
  • 14.10.3 撤销回调 784
  • 14.10.4 什么情况下不调用atexit函数 785
  • 14.10.5 处理异常 786
  • 14.11 sched:定时事件调度器 787
  • 14.11.1 有延迟地运行事件 788
  • 14.11.2 重叠事件 788
  • 14.11.3 事件优先级 789
  • 14.11.4 取消事件 790
  • 第 15 章 国际化和本地化 791
  • 15.1 gettext:消息编目 791
  • 15.1.1 转换工作流概述 791
  • 15.1.2 由源代码创建消息编目 792
  • 15.1.3 运行时查找消息编目 794
  • 15.1.4 复数值 795
  • 15.1.5 应用与模块本地化 797
  • 15.1.6 切换转换 798
  • 15.2 locale:文化本地化API 798
  • 15.2.1 探查当前本地化环境 799
  • 15.2.2 货币 803
  • 15.2.3 格式化数字 804
  • 15.2.4 解析数字 805
  • 15.2.5 日期和时间 806
  • 第 16 章 开发工具 807
  • 16.1 pydoc:模块的联机帮助 808
  • 16.1.1 纯文本帮助 808
  • 16.1.2 HTML帮助 809
  • 16.1.3 交互式帮助 809
  • 16.2 doctest:通过文档完成测试 810
  • 16.2.1 起步 810
  • 16.2.2 处理不可预测的输出 811
  • 16.2.3 traceback 814
  • 16.2.4 避开空白符 815
  • 16.2.5 测试位置 819
  • 16.2.6 外部文档 822
  • 16.2.7 运行测试 824
  • 16.2.8 测试上下文 827
  • 16.3 unittest:自动测试框架 829
  • 16.3.1 基本测试结构 829
  • 16.3.2 运行测试 829
  • 16.3.3 测试结果 830
  • 16.3.4 断言真值 831
  • 16.3.5 测试相等性 832
  • 16.3.6 几乎相等? 833
  • 16.3.7 容器 833
  • 16.3.8 测试异常 837
  • 16.3.9 测试固件 838
  • 16.3.10 用不同输入重复测试 840
  • 16.3.11 跳过测试 842
  • 16.3.12 忽略失败测试 842
  • 16.4 trace:执行程序流 843
  • 16.4.1 示例程序 843
  • 16.4.2 跟踪执行 844
  • 16.4.3 代码覆盖 845
  • 16.4.4 调用关系 847
  • 16.4.5 编程接口 848
  • 16.4.6 保存结果数据 849
  • 16.4.7 选项 850
  • 16.5 traceback:异常和栈轨迹 850
  • 16.5.1 支持函数 851
  • 16.5.2 检查栈 851
  • 16.5.3 traceback异常 853
  • 16.5.4 底层异常API 854
  • 16.5.5 底层栈API 857
  • 16.6 cgitb:详细的traceback报告 859
  • 16.6.1 标准traceback转储 859
  • 16.6.2 启用详细的traceback 860
  • 16.6.3 traceback中的局部变量 862
  • 16.6.4 异常属性 864
  • 16.6.5 HTML输出 866
  • 16.6.6 记录traceback 866
  • 16.7 pdb:交互式调试工具 868
  • 16.7.1 启动调试工具 869
  • 16.7.2 控制调试工具 871
  • 16.7.3 断点 881
  • 16.7.4 改变执行流 890
  • 16.7.5 用别名定制调试工具 895
  • 16.7.6 保存配置设置 897
  • 16.8 profile和pstats:性能分析 898
  • 16.8.1 运行性能分析工具 898
  • 16.8.2 在上下文中运行 901
  • 16.8.3 pstats:保存和处理统计信息 901
  • 16.8.4 限制报告内容 903
  • 16.8.5 调用者/被调用者图 903
  • 16.9 timeit:测量小段Python代码执行的时间 905
  • 16.9.1 模块内容 905
  • 16.9.2 基本示例 905
  • 16.9.3 将值存储在字典中 906
  • 16.9.4 从命令行执行 908
  • 16.10 tabnanny:缩进验证工具 909
  • 16.11 compileall:字节编译源文件 910
  • 16.11.1 编译一个目录 910
  • 16.11.2 忽略文件 911
  • 16.11.3 编译sys.path 912
  • 16.11.4 编译单个文件 912
  • 16.11.5 从命令行运行 913
  • 16.12 pyclbr:类浏览器 914
  • 16.12.1 扫描类 915
  • 16.12.2 扫描函数 916
  • 16.13 venv:创建虚拟环境 917
  • 16.13.1 创建环境 917
  • 16.13.2 虚拟环境的内容 917
  • 16.13.3 使用虚拟环境 918
  • 16.14 ensurepip:安装Python包安装工具 920
  • 第 17 章 运行时特性 922
  • 17.1 site:全站点配置 922
  • 17.1.1 导入路径 922
  • 17.1.2 用户目录 923
  • 17.1.3 路径配置文件 924
  • 17.1.4 定制站点配置 926
  • 17.1.5 定制用户配置 927
  • 17.1.6 禁用site模块 929
  • 17.2 sys:系统特定配置 929
  • 17.2.1 解释器设置 929
  • 17.2.2 运行时环境 935
  • 17.2.3 内存管理和限制 937
  • 17.2.4 异常处理 942
  • 17.2.5 底层线程支持 944
  • 17.2.6 模块和导入 947
  • 17.2.7 跟踪程序运行情况 963
  • 17.3 os:可移植访问操作系统特定特性 968
  • 17.3.1 检查文件系统内容 968
  • 17.3.2 管理文件系统权限 971
  • 17.3.3 创建和删除目录 973
  • 17.3.4 处理符号链接 973
  • 17.3.5 安全地替换现有文件 974
  • 17.3.6 检测和改变进程所有者 975
  • 17.3.7 管理进程环境 976
  • 17.3.8 管理进程工作目录 977
  • 17.3.9 运行外部命令 977
  • 17.3.10 用os.fork()创建进程 979
  • 17.3.11 等待子进程 980
  • 17.3.12 Spawn创建新进程 982
  • 17.3.13 操作系统错误码 982
  • 17.4 platform:系统版本信息 983
  • 17.4.1 解释器 983
  • 17.4.2 平台 984
  • 17.4.3 操作系统和硬件信息 985
  • 17.4.4 可执行程序体系结构 986
  • 17.5 resource:系统资源管理 987
  • 17.5.1 当前使用情况 987
  • 17.5.2 资源限制 988
  • 17.6 gc:垃圾回收器 990
  • 17.6.1 跟踪引用 990
  • 17.6.2 强制垃圾回收 992
  • 17.6.3 查找无法回收的对象引用 993
  • 17.6.4 回收阈值和代 995
  • 17.6.5 调试 998
  • 17.7 sysconfig:解释器编译时配置 1002
  • 17.7.1 配置变量 1002
  • 17.7.2 安装路径 1004
  • 17.7.3 Python版本和平台 1007
  • 第 18 章 语言工具 1009
  • 18.1 warnings:非致命警告 1009
  • 18.1.1 分类和过滤 1010
  • 18.1.2 生成警告 1010
  • 18.1.3 用模式过滤 1011
  • 18.1.4 重复的警告 1013
  • 18.1.5 候选消息传送函数 1013
  • 18.1.6 格式化 1014
  • 18.1.7 警告中的栈层次 1014
  • 18.2 abc:抽象基类 1015
  • 18.2.1 ABC如何工作 1015
  • 18.2.2 注册一个具体类 1016
  • 18.2.3 通过派生实现 1017
  • 18.2.4 辅助基类 1017
  • 18.2.5 不完整的实现 1018
  • 18.2.6 ABC中的具体方法 1019
  • 18.2.7 抽象属性 1020
  • 18.2.8 抽象类和静态方法 1022
  • 18.3 dis:Python字节码反汇编工具 1023
  • 18.3.1 基本反汇编 1023
  • 18.3.2 反汇编函数 1024
  • 18.3.3 类 1025
  • 18.3.4 源代码 1026
  • 18.3.5 使用反汇编调试 1027
  • 18.3.6 循环的性能分析 1028
  • 18.3.7 编译器优化 1033
  • 18.4 inspect:检查现场对象 1035
  • 18.4.1 示例模块 1035
  • 18.4.2 检查模块 1035
  • 18.4.3 检查类 1036
  • 18.4.4 检查实例 1038
  • 18.4.5 文档串 1038
  • 18.4.6 获取源代码 1039
  • 18.4.7 方法和函数签名 1041
  • 18.4.8 类层次体系 1043
  • 18.4.9 方法解析顺序 1044
  • 18.4.10 栈与帧 1045
  • 18.4.11 命令行接口 1047
  • 第 19 章 模块和包 1048
  • 19.1 importlib:Python的导入机制 1048
  • 19.1.1 示例包 1048
  • 19.1.2 模块类型 1049
  • 19.1.3 导入模块 1049
  • 19.1.4 加载工具 1051
  • 19.2 pkgutil:包工具 1052
  • 19.2.1 包导入路径 1052
  • 19.2.2 包的开发版本 1054
  • 19.2.3 用PKG文件管理路径 1055
  • 19.2.4 嵌套包 1056
  • 19.2.5 包数据 1058
  • 19.3 zipimport:从ZIP归档加载Python代码 1060
  • 19.3.1 示例 1060
  • 19.3.2 查找模块 1061
  • 19.3.3 访问代码 1061
  • 19.3.4 源代码 1062
  • 19.3.5 包 1063
  • 19.3.6 数据 1063
  • 附录A 移植说明 1066
  • 附录B 标准库之外 1081

About

《Python3 标准库》电子书和配套代码 "The Python Standard Library by Example" ebook and source code 一本又厚又全的讲解Python3标准库的书籍(1000多页)适合当作字典参考或者闲暇时慢慢阅读。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%