譯者序
序
前言
第1章文本
1.1string—文本常量和模板
1.1.1函數
1.1.2模板
1.1.3高級模板
1.2textwrap—格式化文本段落
1.2.1示例數據
1.2.2填充段落
1.2.3去除現有縮進
1.2.4結合dedent和fill
1.2.5懸掛縮進
1.3re—正則表達式
1.3.1查找文本中的模式
1.3.2編譯表達式
1.3.3多重匹配
1.3.4模式語法
1.3.5限制搜索
1.3.6用組解析匹配
1.3.7搜索選項
1.3.8前向或後向
1.3.9自引用表達式
1.3.10用模式修改字符串
1.3.11利用模式拆分
1.4difflib—比較序列
1.4.1比較文本體
1.4.2無用數據
1.4.3比較任意類型
第2章數據結構
2.1collections—容器數據類型
2.1.1Counter
2.1.2defaultdict
2.1.3deque
2.1.4namedtuple
2.1.5OrderedDict
2.2array—固定類型數據序列
2.2.1初始化
2.2.2處理數組
2.2.3數組與文件
2.2.4候選字節順序
2.3heapq—堆排序算法
2.3.1示例數據
2.3.2創建堆
2.3.3訪問堆的內容
2.3.4堆的數據極值
2.4bisect—維護有序列表
2.4.1有序插入
2.4.2處理重復
2.5Queue—線程安全的FIFO實現
2.5.1基本FIFO隊列
2.5.2LIFO隊列
2.5.3優先隊列
2.5.4構建一個多線程播客客戶程序
2.6struct—二進制數據結構
2.6.1函數與Struct類
2.6.2打包和解包
2.6.3字節序
2.6.4緩衝區
2.7weakref—對像的非永久引用
2.7.1引用
2.7.2引用回調
2.7.3代理
2.7.4循環引用
2.7.5緩存對像
2.8copy—復制對像
2.8.1淺副本
2.8.2深副本
2.8.3定制復制行為
2.8.4深副本中的遞歸
2.9pprint—美觀打印數據結構
2.9.1打印
2.9.2格式化
2.9.3任意類
2.9.4遞歸
2.9.5限制嵌套輸出
2.9.6控制輸出寬度
第3章算法
3.1functools—管理函數的工具
3.1.1修飾符
3.1.2比較
3.2itertools—迭代器函數
3.2.1合並和分解迭代器
3.2.2轉換輸入
3.2.3生成新值
3.2.4過濾
3.2.5數據分組
3.3operator—內置操作符的函數接口
3.3.1邏輯操作
3.3.2比較操作符
3.3.3算術操作符
3.3.4序列操作符
3.3.5原地操作符
3.3.6素“獲取方法”
3.3.7結合操作符和定制類
3.3.8類型檢查
3.4contextlib—上下文管理器工具
3.4.1上下文管理器API
3.4.2從生成器到上下文管理器
3.4.3嵌套上下文
3.4.4關閉打開的句柄
第4章日期和時間
4.1time—時鐘時間
4.1.1壁掛鐘時間
4.1.2處理器時鐘時間
4.1.3時間組成
4.1.4處理時區
4.1.5解析和格式化時間
4.2datetime—日期和時間值管理
4.2.1時間
4.2.2日期
4.2.3timedelta
4.2.4日期算術運算
4.2.5比較值
4.2.6結合日期和時間
4.2.7格式化和解析
4.2.8時區
4.3calendar—處理日期
4.3.1格式化示例
4.3.2計算日期
第5章數學計算
5.1decimal—定點數和浮點數的數學運算
5.1.1Decimal
5.1.2算術運算
5.1.3特殊值
5.1.4上下文
5.2fractions—有理數
5.2.1創建 Fraction實例
5.2.2算術運算
5.2.3近似值
5.3random—偽隨機數生成器
5.3.1生成隨機數
5.3.2指定種子
5.3.3保存狀態
5.3.4隨機整數
5.3.5選素
5.3.6排列
5.3.7采樣
5.3.8多個並發生成器
5.3.9SystemRandom
5.3.10非均勻分布
5.4math—數學函數
5.4.1特殊常量
5.4.2測試異常值
5.4.3轉換為整數
5.4.4其他表示
5.4.5正號和負號
5.4.6常用計算
5.4.7指數和對數
5.4.8角
5.4.9三角函數
5.4.10雙曲函數
5.4.11特殊函數
第6章文件繫統
6.1os.path—平臺獨立的文件名管理
6.1.1解析路徑
6.1.2建立路徑
6.1.3規範化路徑
6.1.4文件時間
6.1.5測試文件
6.1.6遍歷一個目錄樹
6.2glob—文件名模式匹配
6.2.1示例數據
6.2.2通配符
6.2.3單字符通配符
6.2.4字符區間
6.3linecache—高效讀取文本文件
6.3.1測試數據
6.3.2讀取特定行
6.3.3處理空行
6.3.4錯誤處理
6.3.5讀取Python源文件
6.4tempfile—臨時文件繫統對像
6.4.1臨時文件
6.4.2命名文件
6.4.3臨時目錄
6.4.4預測名
6.4.5臨時文件位置
6.5shutil—高級文件操作
6.5.1復制文件
6.5.2復數據
6.5.3處理目錄樹
6.6mmap—內存映射文件
6.6.1讀文件
6.6.2寫文件
6.6.3正則表達式
6.7codecs—字符串編碼和解碼
6.7.1Unicode入門
6.7.2處理文件
6.7.3字節序
6.7.4錯誤處理
6.7.5標準輸入和輸出流
6.7.6編碼轉換
6.7.7非Unicode編碼
6.7.8增量編碼
6.7.9Unicode數據和網絡通信
6.7.10定義定制編碼
6.8StringIO—提供類文件API的文本緩衝區
6.9fnmatch—UNIX式glob模式匹配
6.9.1簡單匹配
6.9.2過濾
6.9.3轉換模式
6.10dircache—緩存目錄列表
6.10.1列出目錄內容
6.10.2標注列表
6.11filecmp—比較文件
6.11.1示例數據
6.11.2比較文件
6.11.3比較目錄
6.11.4程序中使用差異
第7章數據持久存儲與交換
7.1pickle—對像串行化
7.1.1導入
7.1.2編碼和解碼字符串數據
7.1.3處理流
7.1.4重構對像的問題
7.1.5不可pickle的對像
7.1.6循環引用
7.2shelve—對像持久存儲
7.2.1 創建一個新shelf
7.2.2寫回
7.2.3特定shelf類型
7.3anydbm—DBM數據庫
7.3.1數據庫類型
7.3.2創建一個新數據庫
7.3.3打開一個現有數據庫
7.3.4錯誤情況
7.4whichdb—識別DBM數據庫格式
7.5sqlite3—嵌入式關繫數據庫
7.5.1創建數據庫
7.5.2獲取數據
7.5.3數據
7.5.4行對像
7.5.5查詢中使用變量
7.5.6批量加載
7.5.7定義新列類型
7.5.8確定列類型
7.5.9事務
7.5.10隔離級別
7.5.11內存中數據庫
7.5.12導出數據庫內容
7.5.13SQL中使用Python函數
7.5.14定制聚集
7.5.15定制排序
7.5.16線程和連接共享
7.5.17限制對數據的訪問
7.6xml.etree.ElementTree—XML操縱API
7.6.1解析XML文檔
7.6.2遍歷解析樹
7.6.3查找文檔中的節點
7.6.4解析節點屬性
7.6.5解析時監視事件
7.6.6創建一個定制樹構造器
7.6.7解析串
7.6.素節點構造文檔
7.6.9美觀打印XML
7.6.10素屬性
7.6.11由節點列表構造樹
7.6.12將XML串行化至一個流
7.7csv—逗號分隔值文件
7.7.1讀文件
7.7.2寫文件
7.7.3方言
7.7.4使用字段名
第8章數據壓縮與歸檔
8.1zlib—GNU zlib壓縮
8.1.1處理內存中數據
8.1.2增量壓縮與解壓縮
8.1.3混合內容流
8.1.4校驗和
8.1.5壓縮網絡數據
8.2gzip—讀寫GNU Zip文件
8.2.1寫壓縮文件
8.2.2讀壓縮數據
8.2.3處理流
8.3bz2—bzip2壓縮
8.3.1內存中一次性操作
8.3.2增量壓縮和解壓縮
8.3.3混合內容流
8.3.4寫壓縮文件
8.3.5讀壓縮文件
8.3.6壓縮網絡數據
8.4tarfile—Tar歸檔訪問
8.4.1測試Tar文件
8.4.2從歸檔文數據
8.4.3從歸檔抽取文件
8.4.4創建新歸檔
8.4.5使用候選歸檔成員名
8.4.6從非文件源寫數據
8.4.7追加到歸檔
8.4.8處理壓縮歸檔
8.5zipfile—ZIP歸檔訪問
8.5.1測試ZIP文件
8.5.2從歸數據
8.5.3從歸檔抽取歸檔文件
8.5.4創建新歸檔
8.5.5使用候選歸檔成員名
8.5.6從非文件源寫數據
8.5.7利用ZipInfo實例寫
8.5.8追加到文件
8.5.9Python ZIP歸檔
8.5.10限制
第9章加密
9.1hashlib—密碼散列
9.1.1示例數據
9.1.2MD5示例
9.1.3SHA1示例
9.1.4按名創建散列
9.1.5增量更新
9.2hmac—密碼消息簽名與驗證
9.2.1消息簽名
9.2.2SHA與MD
9.2.3二進制摘要
9.2.4消息簽名的應用
第10章進程與線程
10.1subprocess—創建附加進程
10.1.1運行外部命令
10.1.2直接處理管道
10.1.3連接管道段
10.1.4與其他命令交互
10.1.5進程間傳遞信號
10.2signal—異步繫統事件
10.2.1接收信號
10.2.2獲取注冊的處理程序
10.2.3發送信號
10.2.4鬧鈴
10.2.5忽略信號
10.2.6信號和線程
10.3threading—管理並發操作
10.3.1Thread對像
10.3.2確定當前線程
10.3.3守護與非守護線程
10.3.4列舉所有線程
10.3.5派生線程
10.3.6定時器線程
10.3.7線程間傳送信號
10.3.8控制資源訪問
10.3.9同步線程
10.3.10限制資源的並發訪問
10.3.11線程特定數據
10.4multiprocessing—像線程一樣管理進程
10.4.1multiprocessing基礎
10.4.2可導入的目標函數
10.4.3確定當前進程
10.4.4守護進程
10.4.5等待進程
10.4.6終止進程
10.4.7進程退出狀態
10.4.8日志
10.4.9派生進程
10.4.10向進程傳遞消息
10.4.11進程間信號傳輸
10.4.12控制資源訪問
10.4.13同步操作
10.4.14控制資源的並發訪問
10.4.15管理共享狀態
10.4.16共享命名空間
10.4.17進程池
10.4.18實現MapReduce
第11章網絡通信
11.1socket—網絡通信
11.1.1尋址、協議簇和套接字類型
11.1.2TCP/IP客戶和服務器
11.1.3用戶數據報客戶和服務器
11.1.4UNIX域套接字
11.1.5組播
11.1.6發送二進制數據
11.1.7非阻塞通信和超時
11.2select—高效等待I/O
11.2.1使用select()
11.2.2有超時的非阻塞I/O
11.2.3使用 poll()
11.2.4平臺特定選項
11.3SocketServer—創建網絡服務器
11.3.1服務器類型
11.3.2服務器對像
11.3.3實現服務器
11.3.4請求處理器
11.3.5回應示例
11.3.6線程和進程
11.4asyncore—異步I/O
11.4.1服務器
11.4.2客戶
11.4.3事件循環
11.4.4處理其他事件循環
11.4.5處理文件
11.5asynchat—異步協議處理器
11.5.1消息終止符
11.5.2服務器和處理器
11.5.3客戶
11.5.4集成
第12章Internet
12.1urlparse—分解URL
12.1.1解析
12.1.2反解析
12.1.3連接
12.2BaseHTTPServer—實現Web服務器的基類
12.2.1HTTP GET
12.2.2HTTP POST
12.2.3線程與進程
12.2.4處理錯誤
12.2.5設置
12.3urllib—網絡資源訪問
12.3.1利用緩存實現簡單獲取
12.3.2參數編碼
12.3.3路徑與URL
12.4urllib2—網絡資源訪問
12.4.1HTTP GET
12.4.2參數編碼
12.4.3HTTP POST
12.4.4增加發出
12.4.5從請求提交表單數據
12.4.6上傳文件
12.4.7創建定制協議處理器
12.5Base64—用ASCII編碼二進制數據
12.5.1Base64編碼
12.5.2Base64解碼
12.5.3URL安全的變種
12.5.4其他編碼
12.6robotparser—網絡蜘蛛訪問控制
12.6.1robots.txt
12.6.2測試訪問權限
12.6.3長久蜘蛛
12.7Cookie—HTTP Cookie
12.7.1創建和設置Cookie
12.7.2Morsel
12.7.3編碼值
12.7.4接收和解析Cookie
12.7.5候選輸出格式
12.7.6廢棄的類
12.8uuid—全局惟一標識符
12.8.1UUID 1—IEEE 802 MAC地址
12.8.2UUID 3和5—基於名字的值
12.8.3UUID 4—隨機值
12.8.4處理UUID對像
12.9json—JavaScript對像記法
12.9.1編碼和解碼簡單數據類型
12.9.2優質輸出和緊湊輸出
12.9.3編碼字典
12.9.4處理定制類型
12.9.5編碼器和解碼器類
12.9.6處理流和文件
12.9.7混合數據流
12.10xmlrpclib—XML-RPC的客戶端庫
12.10.1連接服務器
12.10.2數據類型
12.10.3傳遞對像
12.10.4二進制數據
12.10.5異常處理
12.10.6將調用結合在一個消息中
12.11SimpleXMLRPCServer—一個XML-RPC服務器
12.11.1一個簡單的服務器
12.11.2備用API名
12.11.3加點的API名
12.11.4任意API名
12.11.5公布對像的方法
12.11.6分派調用
12.11.7自省API
第13章Email
13.1smtplib—簡單郵件傳輸協議客戶
13.1.1發送Email消息
13.1.2認證和加密
13.1.3驗證Email地址
13.2smtpd—示例郵件服務器
13.2.1郵件服務器基類
13.2.2調試服務器
13.2.3代理服務器
13.3imaplib—IMAP4客戶庫
13.3.1變種
13.3.2連接到服務器
13.3.3示例配置
13.3.4列出郵箱
13.3.5郵箱狀態
13.3.6選擇郵箱
13.3.7搜索消息
13.3.8搜索規則
13.3.9獲取消息
13.3.10完整消息
13.3.11上傳消息
13.3.12移動和復制消息
13.3.13刪除消息
13.4mailbox—管理郵件歸檔
13.4.1mbox
13.4.2Maildir
13.4.3其他格式
第14章應用構建模塊
14.1getopt—命令行選項解析
14.1.1函數參數
14.1.2短格式選項
14.1.3長格式選項
14.1.4一個完整的例子
14.1.5縮寫長格式選項
14.1.6GNU選項解析
14.1.7結束參數處理
14.2optparse—命令行選項解析器
14.2.1創建OptionParser
14.2.2短格式和長格式選項
14.2.3用getopt比較
14.2.4選項值
14.2.5選項動作
14.2.6幫助消息
14.3argparse—命令行選項和參數解析
14.3.1與optparse比較
14.3.2建立解析器
14.3.3定義參數
14.3.4解析命令行
14.3.5簡單示例
14.3.6自動生成的選項
14.3.7解析器組織
14.3.8高級參數處理
14.4readline—GNU Readline庫
14.4.1配置
14.4.2完成文本
14.4.3訪問完成緩衝區
14.4.4輸入歷史
14.4.5hook
14.5getpass—安全密碼提示
14.5.1示例
14.5.2無終端使用getpass
14.6cmd—面向行的命令處理器
14.6.1處理命令
14.6.2命令參數
14.6.3現場幫助
14.6.4自動完成
14.6.5覆蓋基類方法
14.6.6通過屬性配置Cmd
14.6.7運行shell命令
14.6.8候選輸入
14.6.9sys.argv的命令
14.7shlex—解析shell語法
14.7.1加引號的字符串
14.7.2嵌入注釋
14.7.3分解
14.7.4包含其他Token源
14.7.5控制解析器
14.7.6錯誤處理
14.7.7POSIX與非POSIX解析
14.8ConfigParser—處理配置文件
14.8.1配置文件格式
14.8.2讀取配置文件
14.8.3訪問配置設置
14.8.4修改設置
14.8.5保存配置文件
14.8.6選項搜索路徑
14.8.7用接合合並值
14.9日志—報告狀態、錯誤和信息消息
14.9.1應用與庫中的日志記錄
14.9.2記入文件
14.9.3旋轉日志文件
14.9.4詳細級別
14.9.5命名日志記錄器實例
14.10fileinput—命令行過濾器框架
14.10.1M3U文件轉換為RSS
14.10.2數據
14.10.3原地過濾
14.11atexit—程序關閉回調
14.11.1示例
14.11.2什麼情況下不調用atexit函數
14.11.3處理異常
14.12sched—定時事件調度器
14.12.1有延遲地運行事件
14.12.2重疊事件
14.12.3事件優先級
14.12.4取消事件
第15章國際化和本地化
15.1gettext—消息編目
15.1.1轉換工作流概述
15.1.2由源代碼創建消息編目
15.1.3運行時查找消息編目
15.1.4復數值
15.1.5應用與模塊本地化
15.1.6切換轉換
15.2locale—文化本地化API
15.2.1探查當前本地化環境
15.2.2貨幣
15.2.3格式化數字
15.2.4解析數字
15.2.5日期和時間
第16章開發工具
16.1pydoc—模塊的聯機幫助
16.1.1純文本幫助
16.1.2HTML幫助
16.1.3交互式幫助
16.2doctest—通過文檔完成測試
16.2.1開始
16.2.2處理不可預測的輸出
16.2.3Traceback
16.2.4避開空白符
16.2.5測試位置
16.2.6外部文檔
16.2.7運行測試
16.2.8測試上下文
16.3unittest—自動測試框架
16.3.1基本測試結構
16.3.2運行測試
16.3.3測試結果
16.3.4斷言真值
16.3.5測試相等性
16.3.6近似相等
16.3.7測試異常
16.3.8測試固件
16.3.9測試套件
16.4traceback—異常和棧軌跡
16.4.1支持函數
16.4.2處理異常
16.4.3處理棧
16.5cgitb—詳細的traceback報告
16.5.1標準traceback轉儲
16.5.2啟用詳細traceback
16.5.3traceback中的局部變量
16.5.4異常屬性
16.5.5HTML輸出
16.5.6記錄traceback
16.6pdb—交互式調試工具
16.6.1啟動調試工具
16.6.2控制調試工具
16.6.3斷點
16.6.4改變執行流
16.6.5用別名定制調試工具
16.6.6保存配置設置
16.7trace—執行程序流
16.7.1示例程序
16.7.2跟蹤執行
16.7.3代碼覆蓋
16.7.4調用關繫
16.7.5編程接口
16.7.6保存結果數據
16.7.7選項
16.8profile和pstats—性能分析
16.8.1運行性能分析工具
16.8.2在上下文中運行
16.8.3pstats:保存和處理統計信息
16.8.4限制報告內容
16.8.5調用圖
16.9timeit—測量小段Python代碼的執行時間
16.9.1模塊內容
16.9.2基本示例
16.9.3值存儲在字典中
16.9.4從命令行執行
16.10compileall—字節編譯源文件
16.10.1編譯一個目錄
16.10.2編譯sys.path
16.10.3從命令行執行
16.11pyclbr—類瀏覽器
16.11.1掃描類
16.11.2掃描函數
第17章運行時特性
17.1site—全站點配置
17.1.1導入路徑
17.1.2用戶目錄
17.1.3路徑配置文件
17.1.4定制站點配置
17.1.5定制用戶配置
17.1.6禁用site模塊
17.2sys—繫統特定的配置
17.2.1解釋器設置
17.2.2運行時環境
17.2.3內存管理和限制
17.2.4異常處理
17.2.5底層線程支持
17.2.6模塊和導入
17.2.7跟蹤程序運行情況
17.3os—可移植訪問操作繫統特定特性
17.3.1進程所有者
17.3.2進程環境
17.3.3進程工作目錄
17.3.4管道
17.3.5文件描述符
17.3.6文件繫統權限
17.3.7目錄
17.3.8符號鏈接
17.3.9遍歷目錄樹
17.3.10運行外部命令
17.3.11用os.fork()創建進程
17.3.12等待子進程
17.3.13Spawn
17.3.14文件繫統權限
17.4platform—繫統版本信息
17.4.1解釋器
17.4.2平臺
17.4.3操作繫統和硬件信息
17.4.4可執行程序體繫結構
17.5resource—繫統資源管理
17.5.1當前使用情況
17.5.2資源限制
17.6gc—垃圾回收器
17.6.1跟蹤引用
17.6.2強制垃圾回收
17.6.3查找無法收集的對像引用
17.6.4回收閾限和代
17.6.5調試
17.7sysconfig—解釋器編譯時配置
17.7.1配置變量
17.7.2安裝路徑
17.7.3Python版本和平臺
第18章語言工具
18.1warnings—非致命警告
18.1.1分類和過濾
18.1.2生成警告
18.1.3用模式過濾
18.1.4重復的警告
18.1.5候選消息傳送函數
18.1.6格式化
18.1.7警告中的棧層次
18.2abc—抽像基類
18.2.1為什麼使用抽像基類
18.2.2抽像基類如何工作
18.2.3注冊一個具體類
18.2.4通過派生實現
18.2.5abc中的具體方法
18.2.6抽像屬性
18.3dis—Python字節碼反彙編工具
18.3.1基本反彙編
18.3.2反彙編函數
18.3.3類
18.3.4使用反彙編進行調試
18.3.5循環的性能分析
18.3.6編譯器優化
18.4inspect—檢查現場對像
18.4.1示例模塊
18.4.2模塊信息
18.4.3檢查模塊
18.4.4檢查類
18.4.5文檔串
18.4.6獲取源代碼
18.4.7方法和函數參數
18.4.8類層次結構
18.4.9方法解析順序
18.4.10棧與幀
18.5exceptions—內置異常類
18.5.1基類
18.5.2產生的異常
18.5.3警告類型
第19章模塊與包
19.1imp—Python的導入機制
19.1.1示例包
19.1.2模塊類型
19.1.3查找模塊
19.1.4加載模塊
19.2zipimport—從ZIP歸檔加載Python代碼
19.2.1示例
19.2.2查找模塊
19.2.3訪問代碼
19.2.4源代碼
19.2.5包
19.2.6數據
19.3pkgutil—包工具
19.3.1包導入路徑
19.3.2包的開發版本
19.3.3用PKG文件管理路徑
19.3.4嵌套包
19.3.5包數據