目录
译者序

前言

第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.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 tempf?ile:临时文件系统对象 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 f?ilecmp:比较文件 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 tarf?ile: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 zipf?ile: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 conf?igparser:处理配置文件 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 f?ileinput:命令行过滤器框架 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 prof?ile和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 sysconf?ig:解释器编译时配置 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


按 Ctrl+p 打印本页】【关闭