Python 3标准库,[美] 道格·赫尔曼(Doug Hellmann)
在本書(shū)中,你會(huì)看到用來(lái)處理文本、數(shù)據(jù)類型、算法、數(shù)學(xué)計(jì)算、文件系統(tǒng)、網(wǎng)絡(luò)通信、Internet、XML、Email、加密、并發(fā)性、運(yùn)行時(shí)和語(yǔ)言服務(wù)等各個(gè)方面的實(shí)用代碼和解決方案。在內(nèi)容安排上,每一節(jié)都會(huì)全面介紹一個(gè)模塊,并提供一些很有價(jià)值的補(bǔ)充資源鏈接,這使得本書(shū)成為一本理想的Python標(biāo)準(zhǔn)庫(kù)參考手冊(cè)。
譯者序
前言
第1章 文本 1
1.1 string:文本常量和模板 1
1.1.1 函數(shù) 1
1.1.2 模板 2
1.1.3 高級(jí)模板 3
1.1.4 Formatter 5
1.1.5 常量 5
1.2 textwrap:格式化文本段落 6
1.2.1 示例數(shù)據(jù) 6
1.2.2 填充段落 7
1.2.3 去除現(xiàn)有的縮進(jìn) 7
1.2.4 結(jié)合dedent和fill 8
1.2.5 縮進(jìn)塊 8
1.2.6 懸掛縮進(jìn) 10
1.2.7 截?cái)嚅L(zhǎng)文本 10
1.3 re:正則表達(dá)式 11
1.3.1 查找文本中的模式 11
1.3.2 編譯表達(dá)式 12
1.3.3 多重匹配 13
1.3.4 模式語(yǔ)法 14
1.3.5 限制搜索 22
1.3.6 用組解析匹配 24
1.3.7 搜索選項(xiàng) 29
1.3.8 前向或后向 35
1.3.9 自引用表達(dá)式 38
1.3.10 用模式修改字符串 42
1.3.11 利用模式拆分 44
1.4 difflib:比較序列 46
1.4.1 比較文本體 47
1.4.2 無(wú)用數(shù)據(jù) 49
1.4.3 比較任意類型 50
第2章 數(shù)據(jù)結(jié)構(gòu) 52
2.1 enum:枚舉類型 53
2.1.1 創(chuàng)建枚舉 53
2.1.2 迭代 53
2.1.3 比較Enum 54
2.1.4 唯一枚舉值 55
2.1.5 通過(guò)編程創(chuàng)建枚舉 56
2.1.6 非整數(shù)成員值 58
2.2 collections:容器數(shù)據(jù)類型 60
2.2.1 ChainMap:搜索多個(gè)字典 60
2.2.2 Counter:統(tǒng)計(jì)可散列的對(duì)象 63
2.2.3 defaultdict:缺少的鍵返回一個(gè)默認(rèn)值 66
2.2.4 deque:雙端隊(duì)列 67
2.2.5 namedtuple:帶命名字段的元組子類 70
2.2.6 OrderedDict:記住向字典中增加鍵的順序 74
2.2.7 collections.abc:容器的抽象基類 76
2.3 數(shù)組:固定類型數(shù)據(jù)序列 78
2.3.1 初始化 78
2.3.2 處理數(shù)組 79
2.3.3 數(shù)組和文件 79
2.3.4 候選字節(jié)順序 80
2.4 heapq:堆排序算法 81
2.4.1 示例數(shù)據(jù) 81
2.4.2 創(chuàng)建堆 82
2.4.3 訪問(wèn)堆的內(nèi)容 83
2.4.4 堆的數(shù)據(jù)極值 85
2.4.5 高效合并有序序列 85
2.5 bisect:維護(hù)有序列表 86
2.5.1 有序插入 86
2.5.2 處理重復(fù) 87
2.6 queue:線程安全的FIFO實(shí)現(xiàn) 88
2.6.1 基本FIFO隊(duì)列 88
2.6.2 LIFO隊(duì)列 89
2.6.3 優(yōu)先隊(duì)列 89
2.6.4 構(gòu)建一個(gè)多線程播客客戶程序 90
2.7 struct:二進(jìn)制數(shù)據(jù)結(jié)構(gòu) 93
2.7.1 函數(shù)與Struct類 93
2.7.2 打包和解包 93
2.7.3 字節(jié)序 94
2.7.4 緩沖區(qū) 95
2.8 weakref:對(duì)象的非永久引用 96
2.8.1 引用 96
2.8.2 引用回調(diào) 97
2.8.3 最終化對(duì)象 98
2.8.4 代理 100
2.8.5 緩存對(duì)象 101
2.9 copy:復(fù)制對(duì)象 103
2.9.1 淺副本 103
2.9.2 深副本 104
2.9.3 定制復(fù)制行為 105
2.9.4 深副本中的遞歸 106
2.10 pprint:美觀打印數(shù)據(jù)結(jié)構(gòu) 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:管理函數(shù)的工具 113
3.1.1 修飾符 113
3.1.2 比較 119
3.1.3 緩存 122
3.1.4 縮減數(shù)據(jù)集 125
3.1.5 泛型函數(shù) 127
3.2 itertools:迭代器函數(shù) 129
3.2.1 合并和分解迭代器 129
3.2.2 轉(zhuǎn)換輸入 132
3.2.3 生成新值 133
3.2.4 過(guò)濾 135
3.2.5 數(shù)據(jù)分組 138
3.2.6 合并輸入 139
3.3 operator:內(nèi)置操作符的函數(shù)接口 144
3.3.1 邏輯操作 144
3.3.2 比較操作符 145
3.3.3 算術(shù)操作符 145
3.3.4 序列操作符 146
3.3.5 原地操作符 148
3.3.6 屬性和元素“獲取方法” 148
3.3.7 結(jié)合操作符和定制類 150
3.4 contextlib:上下文管理器工具 151
3.4.1 上下文管理器API 151
3.4.2 上下文管理器作為函數(shù)修飾符 153
3.4.3 從生成器到上下文管理器 154
3.4.4 關(guān)閉打開(kāi)的句柄 156
3.4.5 忽略異常 157
3.4.6 重定向輸出流 158
3.4.7 動(dòng)態(tài)上下文管理器棧 159
第4章 日期和時(shí)間 166
4.1 time:時(shí)鐘時(shí)間 166
4.1.1 比較時(shí)鐘 166
4.1.2 墻上時(shí)鐘時(shí)間 167
4.1.3 單調(diào)時(shí)鐘 168
4.1.4 處理器時(shí)鐘時(shí)間 169
4.1.5 性能計(jì)數(shù)器 170
4.1.6 時(shí)間組成 170
4.1.7 處理時(shí)區(qū) 171
4.1.8 解析和格式化時(shí)間 172
4.2 datetime:日期和時(shí)間值管理 174
4.2.1 時(shí)間 174
4.2.2 日期 175
4.2.3 timedelta 177
4.2.4 日期算術(shù)運(yùn)算 178
4.2.5 比較值 179
4.2.6 結(jié)合日期和時(shí)間 179
4.2.7 格式化和解析 180
4.2.8 時(shí)區(qū) 182
4.3 calendar:處理日期 183
4.3.1 格式化示例 183
4.3.2 本地化環(huán)境 185
4.3.3 計(jì)算日期 186
第5章 數(shù)學(xué)運(yùn)算 188
5.1 decimal:定點(diǎn)數(shù)和浮點(diǎn)數(shù)的數(shù)學(xué)運(yùn)算 188
5.1.1 Decimal 188
5.1.2 格式化 189
5.1.3 算術(shù)運(yùn)算 190
5.1.4 特殊值 191
5.1.5 上下文 192
5.2 fractions:有理數(shù) 196
5.2.1 創(chuàng)建Fraction實(shí)例 197
5.2.2 算術(shù)運(yùn)算 198
5.2.3 近似值 199
5.3 random:偽隨機(jī)數(shù)生成器 199
5.3.1 生成隨機(jī)數(shù) 200
5.3.2 指定種子 200
5.3.3 保存狀態(tài) 201
5.3.4 隨機(jī)整數(shù) 202
5.3.5 選擇隨機(jī)元素 203
5.3.6 排列 203
5.3.7 采樣 205
5.3.8 多個(gè)并發(fā)生成器 205
5.3.9 SystemRandom 206
5.3.10 非均勻分布 207
5.4 math:數(shù)學(xué)函數(shù) 208
5.4.1 特殊常量 208
5.4.2 測(cè)試異常值 208
5.4.3 比較 210
5.4.4 將浮點(diǎn)值轉(zhuǎn)換為整數(shù) 212
5.4.5 浮點(diǎn)值的其他表示 213
5.4.6 正號(hào)和負(fù)號(hào) 214
5.4.7 常用計(jì)算 215
5.4.8 指數(shù)和對(duì)數(shù) 218
5.4.9 角 222
5.4.10 三角函數(shù) 224
5.4.11 雙曲函數(shù) 226
5.4.12 特殊函數(shù) 227
5.5 statistics:統(tǒng)計(jì)計(jì)算 228
5.5.1 平均值 228
5.5.2 方差 230
第6章 文件系統(tǒng) 232
6.1 os.path:平臺(tái)獨(dú)立的文件名管理 233
6.1.1 解析路徑 233
6.1.2 建立路徑 236
6.1.3 規(guī)范化路徑 237
6.1.4 文件時(shí)間 238
6.1.5 測(cè)試文件 238
6.2 pathlib:文件系統(tǒng)路徑作為對(duì)象 240
6.2.1 路徑表示 240
6.2.2 建立路徑 240
6.2.3 解析路徑 242
6.2.4 創(chuàng)建具體路徑 243
6.2.5 目錄內(nèi)容 244
6.2.6 讀寫文件 246
6.2.7 管理目錄和符號(hào)鏈接 246
6.2.8 文件類型 247
6.2.9 文件屬性 248
6.2.10 權(quán)限 250
6.2.11 刪除 250
6.3 glob:文件名模式匹配 252
6.3.1 示例數(shù)據(jù) 252
6.3.2 通配符 252
6.3.3 單字符通配符 253
6.3.4 字符區(qū)間 253
6.3.5 轉(zhuǎn)義元字符 254
6.4 fnmatch:UNIX式glob模式匹配 254
6.4.1 簡(jiǎn)單匹配 254
6.4.2 過(guò)濾 255
6.4.3 轉(zhuǎn)換模式 256
6.5 linecache:高效讀取文本文件 257
6.5.1 測(cè)試數(shù)據(jù) 257
6.5.2 讀取特定行 257
6.5.3 處理空行 258
6.5.4 錯(cuò)誤處理 258
6.5.5 讀取Python源文件 259
6.6 tempfile:臨時(shí)文件系統(tǒng)對(duì)象 260
6.6.1 臨時(shí)文件 260
6.6.2 命名文件 262
6.6.3 假脫機(jī)文件 262
6.6.4 臨時(shí)目錄 263
6.6.5 預(yù)測(cè)名 264
6.6.6 臨時(shí)文件位置 264
6.7 shutil:高層文件操作 265
6.7.1 復(fù)制文件 265
6.7.2 復(fù)制文件元數(shù)據(jù) 268
6.7.3 處理目錄樹(shù) 269
6.7.4 查找文件 271
6.7.5 歸檔 272
6.7.6 文件系統(tǒng)空間 275
6.8 filecmp:比較文件 276
6.8.1 示例數(shù)據(jù) 276
6.8.2 比較文件 278
6.8.3 比較目錄 279
6.8.4 在程序中使用差異 280
6.9 mmap:內(nèi)存映射文件 283
6.9.1 讀文件 284
6.9.2 寫文件 285
6.9.3 正則表達(dá)式 286
6.10 codecs:字符串編碼和解碼 287
6.10.1 Unicode入門 287
6.10.2 處理文件 289
6.10.3 字節(jié)序 291
6.10.4 錯(cuò)誤處理 293
6.10.5 編碼轉(zhuǎn)換 295
6.10.6 非Unicode編碼 296
6.10.7 增量編碼 297
6.10.8 Unicode數(shù)據(jù)和網(wǎng)絡(luò)通信 299
6.10.9 定義定制編碼 301
6.11 io:文本、十進(jìn)制和原始流I/O工具 307
6.11.1 內(nèi)存中的流 307
6.11.2 為文本數(shù)據(jù)包裝字節(jié)流 308
第7章 數(shù)據(jù)持久存儲(chǔ)與交換 310
7.1 pickle:對(duì)象串行化 311
7.1.1 編碼和解碼字符串中的數(shù)據(jù) 311
7.1.2 處理流 312
7.1.3 重構(gòu)對(duì)象的問(wèn)題 313
7.1.4 不可腌制的對(duì)象 314
7.1.5 循環(huán)引用 316
7.2 shelve:對(duì)象的持久存儲(chǔ) 318
7.2.1 創(chuàng)建一個(gè)新shelf 318
7.2.2 寫回 319
7.2.3 特定shelf類型 320
7.3 dbm:UNIX鍵-值數(shù)據(jù)庫(kù) 320
7.3.1 數(shù)據(jù)庫(kù)類型 321
7.3.2 創(chuàng)建一個(gè)新數(shù)據(jù)庫(kù) 321
7.3.3 打開(kāi)一個(gè)現(xiàn)有數(shù)據(jù)庫(kù) 322
7.3.4 錯(cuò)誤情況 322
7.4 sqlite3:嵌入式關(guān)系數(shù)據(jù)庫(kù) 323
7.4.1 創(chuàng)建數(shù)據(jù)庫(kù) 323
7.4.2 獲取數(shù)據(jù) 326
7.4.3 查詢?cè)獢?shù)據(jù) 327
7.4.4 行對(duì)象 328
7.4.5 在查詢中使用變量 329
7.4.6 批量加載 331
7.4.7 定義新的列類型 331
7.4.8 確定列類型 334
7.4.9 事務(wù) 336
7.4.10 隔離級(jí)別 338
7.4.11 內(nèi)存中的數(shù)據(jù)庫(kù) 341
7.4.12 導(dǎo)出數(shù)據(jù)庫(kù)內(nèi)容 341
7.4.13 在SQL中使用Python函數(shù) 342
7.4.14 帶正則表達(dá)式的查詢 344
7.4.15 定制聚集 345
7.4.16 線程和連接共享 346
7.4.17 限制對(duì)數(shù)據(jù)的訪問(wèn) 347
7.5 xml.etree.ElementTree:XML操縱API 349
7.5.1 解析XML文檔 349
7.5.2 遍歷解析樹(shù) 350
7.5.3 查找文檔中的節(jié)點(diǎn) 351
7.5.4 解析節(jié)點(diǎn)屬性 352
7.5.5 解析時(shí)監(jiān)視事件 354
7.5.6 創(chuàng)建一個(gè)定制樹(shù)構(gòu)造器 356
7.5.7 解析串 357
7.5.8 用元素節(jié)點(diǎn)構(gòu)造文檔 359
7.5.9 美觀打印XML 359
7.5.10 設(shè)置元素屬性 360
7.5.11 由節(jié)點(diǎn)列表構(gòu)造樹(shù) 362
7.5.12 將XML串行化至一個(gè)流 364
7.6 csv:逗號(hào)分隔值文件 366
7.6.1 讀文件 366
7.6.2 寫文件 367
7.6.3 方言 368
7.6.4 使用字段名 373
第8章 數(shù)據(jù)壓縮與歸檔 375
8.1 zlib:GNU zlib壓縮 375
8.1.1 處理內(nèi)存中的數(shù)據(jù) 375
8.1.2 增量壓縮與解壓縮 377
8.1.3 混合內(nèi)容流 378
8.1.4 校驗(yàn)和 378
8.1.5 壓縮網(wǎng)絡(luò)數(shù)據(jù) 379
8.2 gzip:讀寫GNU zip文件 382
8.2.1 寫壓縮文件 382
8.2.2 讀壓縮數(shù)據(jù) 384
8.2.3 處理流 385
8.3 bz2:bzip2壓縮 386
8.3.1 內(nèi)存中的一次性操作 386
8.3.2 增量壓縮和解壓縮 388
8.3.3 混合內(nèi)容流 388
8.3.4 寫壓縮文件 389
8.3.5 讀壓縮文件 390
8.3.6 讀寫Unicode數(shù)據(jù) 391
8.3.7 壓縮網(wǎng)絡(luò)數(shù)據(jù) 392
8.4 tarfile:tar歸檔訪問(wèn) 395
8.4.1 測(cè)試tar文件 396
8.4.2 從歸檔讀取元數(shù)據(jù) 396
8.4.3 從歸檔抽取文件 397
8.4.4 創(chuàng)建新歸檔 399
8.4.5 使用候選歸檔成員名 399
8.4.6 從非文件源寫數(shù)據(jù) 400
8.4.7 追加到歸檔 400
8.4.8 處理壓縮歸檔 401
8.5 zipfile:ZIP歸檔訪問(wèn) 402
8.5.1 測(cè)試ZIP文件 402
8.5.2 從歸檔讀取元數(shù)據(jù) 402
8.5.3 從歸檔抽取歸檔文件 404
8.5.4 創(chuàng)建新歸檔 404
8.5.5 使用候選歸檔成員名 406
8.5.6 從非文件源寫數(shù)據(jù) 406
8.5.7 利用ZipInfo實(shí)例寫數(shù)據(jù) 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 示例數(shù)據(jù) 412
9.1.3 MD5示例 412
9.1.4 SHA1示例 412
9.1.5 按名創(chuàng)建散列 413
9.1.6 增量更新 413
9.2 hmac:密碼消息簽名與驗(yàn)證 414
9.2.1 消息簽名 415
9.2.2 候選摘要類型 415
9.2.3 二進(jìn)制摘要 416
9.2.4 消息簽名的應(yīng)用 416
第 10 章 使用進(jìn)程、線程和協(xié)程提供并發(fā)性 420
10.1 subprocess:創(chuàng)建附加進(jìn)程 420
10.1.1 運(yùn)行外部命令 421
10.1.2 直接處理管道 425
10.1.3 連接管道段 427
10.1.4 與其他命令交互 428
10.1.5 進(jìn)程間傳遞信號(hào) 430
10.2 signal:異步系統(tǒng)事件 434
10.2.1 接收信號(hào) 434
10.2.2 獲取已注冊(cè)的處理器 435
10.2.3 發(fā)送信號(hào) 436
10.2.4 鬧鈴 436
10.2.5 忽略信號(hào) 437
10.2.6 信號(hào)和線程 438
10.3 threading:進(jìn)程中管理并發(fā)操作 440
10.3.1 Thread對(duì)象 440
10.3.2 確定當(dāng)前線程 441
10.3.3 守護(hù)與非守護(hù)線程 442
10.3.4 枚舉所有線程 444
10.3.5 派生線程 445
10.3.6 定時(shí)器線程 447
10.3.7 線程間傳送信號(hào) 447
10.3.8 控制資源訪問(wèn) 449
10.3.9 同步線程 453
10.3.10 限制資源的并發(fā)訪問(wèn) 456
10.3.11 線程特定的數(shù)據(jù) 457
10.4 multiprocessing:像線程一樣管理進(jìn)程 459
10.4.1 multiprocessing基礎(chǔ) 460
10.4.2 可導(dǎo)入的目標(biāo)函數(shù) 461
10.4.3 確定當(dāng)前進(jìn)程 461
10.4.4 守護(hù)進(jìn)程 462
10.4.5 等待進(jìn)程 463
10.4.6 終止進(jìn)程 465
10.4.7 進(jìn)程退出狀態(tài) 466
10.4.8 日志 467
10.4.9 派生進(jìn)程 469
10.4.10 向進(jìn)程傳遞消息 469
10.4.11 進(jìn)程間信號(hào)傳輸 472
10.4.12 控制資源訪問(wèn) 473
10.4.13 同步操作 474
10.4.14 控制資源的并發(fā)訪問(wèn) 475
10.4.15 管理共享狀態(tài) 476
10.4.16 共享命名空間 477
10.4.17 進(jìn)程池 479
10.4.18 實(shí)現(xiàn)MapReduce 480
10.5 asyncio:異步I/O、事件循環(huán)和并發(fā)工具 484
10.5.1 異步并發(fā)概念 484
10.5.2 利用協(xié)程合作完成多任務(wù) 485
10.5.3 調(diào)度常規(guī)函數(shù)調(diào)用 488
10.5.4 異步地生成結(jié)果 490
10.5.5 并發(fā)地執(zhí)行任務(wù) 492
10.5.6 組合協(xié)程和控制結(jié)構(gòu) 495
10.5.7 同步原語(yǔ) 499
10.5.8 提供協(xié)議類抽象的異步I/O 505
10.5.9 使用協(xié)程和流的異步I/O 510
10.5.10 使用SSL 514
10.5.11 與域名服務(wù)交互 516
10.5.12 使用子進(jìn)程 518
10.5.13 接收UNIX信號(hào) 523
10.5.14 結(jié)合使用協(xié)程、線程與進(jìn)程 525
10.5.15 用asyncio調(diào)試 527
10.6 concurrent.futures:管理并發(fā)任務(wù)池 530
10.6.1 利用基本線程池使用map() 531
10.6.2 調(diào)度單個(gè)任務(wù) 532
10.6.3 按任意順序等待任務(wù) 532
10.6.4 Future回調(diào) 533
10.6.5 撤銷任務(wù) 534
10.6.6 任務(wù)中的異常 535
10.6.7 上下文管理器 536
10.6.8 進(jìn)程池 537
第 11 章 網(wǎng)絡(luò)通信 539
11.1 ipaddress:Internet地址 539
11.1.1 地址 539
11.1.2 網(wǎng)絡(luò) 540
11.1.3 接口 543
11.2 socket:網(wǎng)絡(luò)通信 544
11.2.1 尋址、協(xié)議簇和套接字類型 544
11.2.2 TCP/IP客戶和服務(wù)器 552
11.2.3 用戶數(shù)據(jù)報(bào)客戶和服務(wù)器 558
11.2.4 UNIX域套接字 560
11.2.5 組播 563
11.2.6 發(fā)送二進(jìn)制數(shù)據(jù) 566
11.2.7 非阻塞通信和超時(shí) 568
11.3 selectors:I/O多路復(fù)用抽象 568
11.3.1 操作模型 569
11.3.2 回送服務(wù)器 569
11.3.3 回送客戶 570
11.3.4 服務(wù)器和客戶 571
11.4 select:高效等待I/O 572
11.4.1 使用select() 572
11.4.2 帶超時(shí)的非阻塞I/O 577
11.4.3 使用poll() 579
11.4.4 平臺(tái)特定的選項(xiàng) 582
11.5 socketserver:創(chuàng)建網(wǎng)絡(luò)服務(wù)器 583
11.5.1 服務(wù)器類型 583
11.5.2 服務(wù)器對(duì)象 583
11.5.3 實(shí)現(xiàn)服務(wù)器 584
11.5.4 請(qǐng)求處理器 584
11.5.5 回送示例 584
11.5.6 線程和進(jìn)程 588
第 12 章 互聯(lián)網(wǎng) 592
12.1 urllib.parse:分解URL 592
12.1.1 解析 593
12.1.2 反解析 595
12.1.3 連接 596
12.1.4 解碼查詢參數(shù) 597
12.2 urllib.request:網(wǎng)絡(luò)資源訪問(wèn) 599
12.2.1 HTTP GET 599
12.2.2 編碼參數(shù) 600
12.2.3 HTTP POST 601
12.2.4 添加發(fā)出首部 602
12.2.5 從請(qǐng)求提交表單數(shù)據(jù) 602
12.2.6 上傳文件 603
12.2.7 創(chuàng)建定制協(xié)議處理器 606
12.3 urllib.robotparser: Internet蜘蛛訪問(wèn)控制 608
12.3.1 robots.txt 608
12.3.2 測(cè)試訪問(wèn)權(quán)限 609
12.3.3 長(zhǎng)壽命蜘蛛 610
12.4 base64:用ASCII編碼二進(jìn)制數(shù)據(jù) 611
12.4.1 Base64編碼 611
12.4.2 Base64解碼 612
12.4.3 URL安全的變種 612
12.4.4 其他編碼 613
12.5 httpsss.server:實(shí)現(xiàn)Web服務(wù)器的基類 615
12.5.1 HTTP GET 615
12.5.2 HTTP POST 616
12.5.3 線程和進(jìn)程 618
12.5.4 處理錯(cuò)誤 619
12.5.5 設(shè)置首部 620
12.5.6 命令行用法 621
12.6 httpsss.cookies:HTTP cookie 622
12.6.1 創(chuàng)建和設(shè)置cookie 622
12.6.2 Morsel 622
12.6.3 編碼的值 624
12.6.4 接收和解析Cookie首部 624
12.6.5 候選輸出格式 625
12.7 webbrowser:顯示W(wǎng)eb頁(yè)面 626
12.7.1 簡(jiǎn)單示例 626
12.7.2 窗口與標(biāo)簽頁(yè) 626
12.7.3 使用特定瀏覽器 627
12.7.4 BROWSER變量 627
12.7.5 命令行接口 627
12.8 uuid:全局唯一標(biāo)識(shí)符 628
12.8.1 UUID 1:IEEE 802 MAC地址 628
12.8.2 UUID 3和5:基于名字的值 630
12.8.3 UUID 4:隨機(jī)值 631
12.8.4 處理UUID對(duì)象 631
12.9 json:JavaScript對(duì)象記法 632
12.9.1 編碼和解碼簡(jiǎn)單數(shù)據(jù)類型 633
12.9.2 人類可讀和緊湊輸出 633
12.9.3 編碼字典 635
12.9.4 處理定制類型 636
12.9.5 編碼器和解碼器類 638
12.9.6 處理流和文件 640
12.9.7 混合數(shù)據(jù)流 641
12.9.8 命令行上處理JSON 641
12.10 xmlrpc.client:XML-RPC的客戶庫(kù) 642
12.10.1 連接服務(wù)器 643
12.10.2 數(shù)據(jù)類型 645
12.10.3 傳遞對(duì)象 648
12.10.4 二進(jìn)制數(shù)據(jù) 648
12.10.5 異常處理 650
12.10.6 將調(diào)用組合在一個(gè)消息中 650
12.11 xmlrpc.server:一個(gè)XML-RPC服務(wù)器 652
12.11.1 一個(gè)簡(jiǎn)單的服務(wù)器 652
12.11.2 候選API名 653
12.11.3 加點(diǎn)的API名 654
12.11.4 任意API名 655
12.11.5 公布對(duì)象的方法 656
12.11.6 分派調(diào)用 657
12.11.7 自省API 659
第 13 章 email 662
13.1 smtplib:簡(jiǎn)單郵件傳輸協(xié)議客戶 662
13.1.1 發(fā)送email消息 662
13.1.2 認(rèn)證和加密 663
13.1.3 驗(yàn)證email地址 666
13.2 smtpd:示例郵件服務(wù)器 667
13.2.1 郵件服務(wù)器基類 667
13.2.2 調(diào)試服務(wù)器 669
13.2.3 代理服務(wù)器 670
13.3 mailbox:管理email歸檔 670
13.3.1 mbox 671
13.3.2 Maildir 673
13.3.3 消息標(biāo)志 678
13.3.4 其他格式 680
13.4 imaplib:IMAP4客戶庫(kù) 680
13.4.1 變種 680
13.4.2 連接服務(wù)器 681
13.4.3 示例配置 682
13.4.4 列出郵箱 682
13.4.5 郵箱狀態(tài) 684
13.4.6 選擇郵箱 686
13.4.7 搜索消息 686
13.4.8 搜索規(guī)則 687
13.4.9 獲取消息 689
13.4.10 完整消息 693
13.4.11 上傳消息 694
13.4.12 移動(dòng)和復(fù)制消息 695
13.4.13 刪除消息 696
第 14 章 應(yīng)用構(gòu)建模塊 699
14.1 argparse:命令行選項(xiàng)和參數(shù)解析 700
14.1.1 建立解析器 700
14.1.2 定義參數(shù) 700
14.1.3 解析命令行 700
14.1.4 簡(jiǎn)單示例 701
14.1.5 幫助輸出 707
14.1.6 解析器組織 711
14.1.7 高級(jí)參數(shù)處理 716
14.2 getopt:命令行選項(xiàng)解析 722
14.2.1 函數(shù)參數(shù) 722
14.2.2 短格式選項(xiàng) 723
14.2.3 長(zhǎng)格式選項(xiàng) 723
14.2.4 一個(gè)完整的例子 723
14.2.5 縮寫長(zhǎng)格式選項(xiàng) 725
14.2.6 GNU式選項(xiàng)解析 725
14.2.7 結(jié)束參數(shù)處理 726
14.3 readline:GNU readline庫(kù) 727
14.3.1 配置readline 727
14.3.2 完成文本 728
14.3.3 訪問(wèn)完成緩沖區(qū) 731
14.3.4 輸入歷史 733
14.3.5 hook 736
14.4 getpass:安全密碼提示 737
14.4.1 示例 737
14.4.2 無(wú)終端使用getpass 738
14.5 cmd:面向行的命令處理器 739
14.5.1 處理命令 739
14.5.2 命令參數(shù) 740
14.5.3 現(xiàn)場(chǎng)幫助 741
14.5.4 自動(dòng)完成 742
14.5.5 覆蓋基類方法 744
14.5.6 通過(guò)屬性配置Cmd 745
14.5.7 運(yùn)行shell命令 746
14.5.8 候選輸入 747
14.5.9 sys.argv的命令 748
14.6 shlex:解析shell類語(yǔ)法 749
14.6.1 解析加引號(hào)的字符串 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 錯(cuò)誤處理 755
14.6.8 POSIX與非POSIX解析 756
14.7 configparser:處理配置文件 757
14.7.1 配置文件格式 757
14.7.2 讀取配置文件 758
14.7.3 訪問(wèn)配置設(shè)置 759
14.7.4 修改設(shè)置 765
14.7.5 保存配置文件 766
14.7.6 選項(xiàng)搜索路徑 767
14.7.7 用拼接合并值 768
14.8 logging:報(bào)告狀態(tài)、錯(cuò)誤和信息消息 772
14.8.1 日志系統(tǒng)的組成 773
14.8.2 應(yīng)用與庫(kù)中的日志記錄 773
14.8.3 記入文件 773
14.8.4 旋轉(zhuǎn)日志文件 774
14.8.5 詳細(xì)級(jí)別 774
14.8.6 命名日志記錄器實(shí)例 776
14.8.7 日志樹(shù) 776
14.8.8 與warnings模塊集成 777
14.9 fileinput:命令行過(guò)濾器框架 778
14.9.1 將m3u文件轉(zhuǎn)換為RSS 778
14.9.2 進(jìn)度元數(shù)據(jù) 779
14.9.3 原地過(guò)濾 781
14.10 atexit:程序關(guān)閉回調(diào) 782
14.10.1 注冊(cè)退出回調(diào) 782
14.10.2 修飾符語(yǔ)法 783
14.10.3 撤銷回調(diào) 784
14.10.4 什么情況下不調(diào)用atexit函數(shù) 785
14.10.5 處理異常 786
14.11 sched:定時(shí)事件調(diào)度器 787
14.11.1 有延遲地運(yùn)行事件 788
14.11.2 重疊事件 788
14.11.3 事件優(yōu)先級(jí) 789
14.11.4 取消事件 790
第 15 章 國(guó)際化和本地化 791
15.1 gettext:消息編目 791
15.1.1 轉(zhuǎn)換工作流概述 791
15.1.2 由源代碼創(chuàng)建消息編目 792
15.1.3 運(yùn)行時(shí)查找消息編目 794
15.1.4 復(fù)數(shù)值 795
15.1.5 應(yīng)用與模塊本地化 797
15.1.6 切換轉(zhuǎn)換 798
15.2 locale:文化本地化API 798
15.2.1 探查當(dāng)前本地化環(huán)境 799
15.2.2 貨幣 803
15.2.3 格式化數(shù)字 804
15.2.4 解析數(shù)字 805
15.2.5 日期和時(shí)間 806
第 16 章 開(kāi)發(fā)工具 807
16.1 pydoc:模塊的聯(lián)機(jī)幫助 808
16.1.1 純文本幫助 808
16.1.2 HTML幫助 809
16.1.3 交互式幫助 809
16.2 doctest:通過(guò)文檔完成測(cè)試 810
16.2.1 起步 810
16.2.2 處理不可預(yù)測(cè)的輸出 811
16.2.3 traceback 814
16.2.4 避開(kāi)空白符 815
16.2.5 測(cè)試位置 819
16.2.6 外部文檔 822
16.2.7 運(yùn)行測(cè)試 824
16.2.8 測(cè)試上下文 827
16.3 unittest:自動(dòng)測(cè)試框架 829
16.3.1 基本測(cè)試結(jié)構(gòu) 829
16.3.2 運(yùn)行測(cè)試 829
16.3.3 測(cè)試結(jié)果 830
16.3.4 斷言真值 831
16.3.5 測(cè)試相等性 832
16.3.6 幾乎相等? 833
16.3.7 容器 833
16.3.8 測(cè)試異常 837
16.3.9 測(cè)試固件 838
16.3.10 用不同輸入重復(fù)測(cè)試 840
16.3.11 跳過(guò)測(cè)試 842
16.3.12 忽略失敗測(cè)試 842
16.4 trace:執(zhí)行程序流 843
16.4.1 示例程序 843
16.4.2 跟蹤執(zhí)行 844
16.4.3 代碼覆蓋 845
16.4.4 調(diào)用關(guān)系 847
16.4.5 編程接口 848
16.4.6 保存結(jié)果數(shù)據(jù) 849
16.4.7 選項(xiàng) 850
16.5 traceback:異常和棧軌跡 850
16.5.1 支持函數(shù) 851
16.5.2 檢查棧 851
16.5.3 traceback異常 853
16.5.4 底層異常API 854
16.5.5 底層棧API 857
16.6 cgitb:詳細(xì)的traceback報(bào)告 859
16.6.1 標(biāo)準(zhǔn)traceback轉(zhuǎn)儲(chǔ) 859
16.6.2 啟用詳細(xì)的traceback 860
16.6.3 traceback中的局部變量 862
16.6.4 異常屬性 864
16.6.5 HTML輸出 866
16.6.6 記錄traceback 866
16.7 pdb:交互式調(diào)試工具 868
16.7.1 啟動(dòng)調(diào)試工具 869
16.7.2 控制調(diào)試工具 871
16.7.3 斷點(diǎn) 881
16.7.4 改變執(zhí)行流 890
16.7.5 用別名定制調(diào)試工具 895
16.7.6 保存配置設(shè)置 897
16.8 profile和pstats:性能分析 898
16.8.1 運(yùn)行性能分析工具 898
16.8.2 在上下文中運(yùn)行 901
16.8.3 pstats:保存和處理統(tǒng)計(jì)信息 901
16.8.4 限制報(bào)告內(nèi)容 903
16.8.5 調(diào)用者/被調(diào)用者圖 903
16.9 timeit:測(cè)量小段Python代碼執(zhí)行的時(shí)間 905
16.9.1 模塊內(nèi)容 905
16.9.2 基本示例 905
16.9.3 將值存儲(chǔ)在字典中 906
16.9.4 從命令行執(zhí)行 908
16.10 tabnanny:縮進(jìn)驗(yàn)證工具 909
16.11 compileall:字節(jié)編譯源文件 910
16.11.1 編譯一個(gè)目錄 910
16.11.2 忽略文件 911
16.11.3 編譯sys.path 912
16.11.4 編譯單個(gè)文件 912
16.11.5 從命令行運(yùn)行 913
16.12 pyclbr:類瀏覽器 914
16.12.1 掃描類 915
16.12.2 掃描函數(shù) 916
16.13 venv:創(chuàng)建虛擬環(huán)境 917
16.13.1 創(chuàng)建環(huán)境 917
16.13.2 虛擬環(huán)境的內(nèi)容 917
16.13.3 使用虛擬環(huán)境 918
16.14 ensurepip:安裝Python包安裝工具 920
第 17 章 運(yùn)行時(shí)特性 922
17.1 site:全站點(diǎn)配置 922
17.1.1 導(dǎo)入路徑 922
17.1.2 用戶目錄 923
17.1.3 路徑配置文件 924
17.1.4 定制站點(diǎn)配置 926
17.1.5 定制用戶配置 927
17.1.6 禁用site模塊 929
17.2 sys:系統(tǒng)特定配置 929
17.2.1 解釋器設(shè)置 929
17.2.2 運(yùn)行時(shí)環(huán)境 935
17.2.3 內(nèi)存管理和限制 937
17.2.4 異常處理 942
17.2.5 底層線程支持 944
17.2.6 模塊和導(dǎo)入 947
17.2.7 跟蹤程序運(yùn)行情況 963
17.3 os:可移植訪問(wèn)操作系統(tǒng)特定特性 968
17.3.1 檢查文件系統(tǒng)內(nèi)容 968
17.3.2 管理文件系統(tǒng)權(quán)限 971
17.3.3 創(chuàng)建和刪除目錄 973
17.3.4 處理符號(hào)鏈接 973
17.3.5 安全地替換現(xiàn)有文件 974
17.3.6 檢測(cè)和改變進(jìn)程所有者 975
17.3.7 管理進(jìn)程環(huán)境 976
17.3.8 管理進(jìn)程工作目錄 977
17.3.9 運(yùn)行外部命令 977
17.3.10 用os.fork()創(chuàng)建進(jìn)程 979
17.3.11 等待子進(jìn)程 980
17.3.12 Spawn創(chuàng)建新進(jìn)程 982
17.3.13 操作系統(tǒng)錯(cuò)誤碼 982
17.4 platform:系統(tǒng)版本信息 983
17.4.1 解釋器 983
17.4.2 平臺(tái) 984
17.4.3 操作系統(tǒng)和硬件信息 985
17.4.4 可執(zhí)行程序體系結(jié)構(gòu) 986
17.5 resource:系統(tǒng)資源管理 987
17.5.1 當(dāng)前使用情況 987
17.5.2 資源限制 988
17.6 gc:垃圾回收器 990
17.6.1 跟蹤引用 990
17.6.2 強(qiáng)制垃圾回收 992
17.6.3 查找無(wú)法回收的對(duì)象引用 993
17.6.4 回收閾值和代 995
17.6.5 調(diào)試 998
17.7 sysconfig:解釋器編譯時(shí)配置 1002
17.7.1 配置變量 1002
17.7.2 安裝路徑 1004
17.7.3 Python版本和平臺(tái) 1007
第 18 章 語(yǔ)言工具 1009
18.1 warnings:非致命警告 1009
18.1.1 分類和過(guò)濾 1010
18.1.2 生成警告 1010
18.1.3 用模式過(guò)濾 1011
18.1.4 重復(fù)的警告 1013
18.1.5 候選消息傳送函數(shù) 1013
18.1.6 格式化 1014
18.1.7 警告中的棧層次 1014
18.2 abc:抽象基類 1015
18.2.1 ABC如何工作 1015
18.2.2 注冊(cè)一個(gè)具體類 1016
18.2.3 通過(guò)派生實(shí)現(xiàn) 1017
18.2.4 輔助基類 1017
18.2.5 不完整的實(shí)現(xiàn) 1018
18.2.6 ABC中的具體方法 1019
18.2.7 抽象屬性 1020
18.2.8 抽象類和靜態(tài)方法 1022
18.3 dis:Python字節(jié)碼反匯編工具 1023
18.3.1 基本反匯編 1023
18.3.2 反匯編函數(shù) 1024
18.3.3 類 1025
18.3.4 源代碼 1026
18.3.5 使用反匯編調(diào)試 1027
18.3.6 循環(huán)的性能分析 1028
18.3.7 編譯器優(yōu)化 1033
18.4 inspect:檢查現(xiàn)場(chǎng)對(duì)象 1035
18.4.1 示例模塊 1035
18.4.2 檢查模塊 1035
18.4.3 檢查類 1036
18.4.4 檢查實(shí)例 1038
18.4.5 文檔串 1038
18.4.6 獲取源代碼 1039
18.4.7 方法和函數(shù)簽名 1041
18.4.8 類層次體系 1043
18.4.9 方法解析順序 1044
18.4.10 棧與幀 1045
18.4.11 命令行接口 1047
第 19 章 模塊和包 1048
19.1 importlib:Python的導(dǎo)入機(jī)制 1048
19.1.1 示例包 1048
19.1.2 模塊類型 1049
19.1.3 導(dǎo)入模塊 1049
19.1.4 加載工具 1051
19.2 pkgutil:包工具 1052
19.2.1 包導(dǎo)入路徑 1052
19.2.2 包的開(kāi)發(fā)版本 1054
19.2.3 用PKG文件管理路徑 1055
19.2.4 嵌套包 1056
19.2.5 包數(shù)據(jù) 1058
19.3 zipimport:從ZIP歸檔加載Python代碼 1060
19.3.1 示例 1060
19.3.2 查找模塊 1061
19.3.3 訪問(wèn)代碼 1061
19.3.4 源代碼 1062
19.3.5 包 1063
19.3.6 數(shù)據(jù) 1063
附錄A 移植說(shuō)明 1066
附錄B 標(biāo)準(zhǔn)庫(kù)之外 1081
總結(jié)
以上是生活随笔為你收集整理的Python 3标准库,[美] 道格·赫尔曼(Doug Hellmann)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 数据挖掘 概念与技术(原书第3版)
- 下一篇: 新鲜出炉!2019年高考语文作文试题来了