譯者序
前言
第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
· · · · · · (
收起)