10.1 作業系統介面
os模組提供很多函數用於和作業系統的互動:
確定使用import os風格而不是from os import *。這將避免os.open()被內建的open()函數遮住,它的操作截然不同。
內建的函數dir()和help()作為互動助手對於大的模組像os是非常有用的:
對於日常的檔案和目錄管理工作,shutil模組提供了一個更進階別的介面,使用起來很簡單:
10.2 檔案萬用字元
glob模組提供了一個函數可以從目錄萬用字元搜尋獲得檔案清單:
10.3 命令列參數
通常的功能指令碼經常需要處理命令列參數。這些參數儲存在sys模組的argv屬性裡,是一個列表。例如,下面是從命令列運行python demo.py one two three的輸出結果:
getopt模組處理sys.argv,使用Unix的getopt()函數的約定。更加強大和靈活的命令列處理由argparse模組提供。
10.4 錯誤輸出重新導向和程式終止
sys模組也有屬性stdin,stdout,stderr。後一個對於發出警告和錯誤訊息並使它們可見非常有用,甚至當stdout已經被重新導向:
最直接的方式來終止一個指令碼是使用sys.exit()。
10.5 字串模式比對
re模組提供Regex用於進階的字串處理。對於複雜的匹配和操作,Regex提供簡潔,最佳化的解決方案:
當只需要簡單的功能是,優先使用字串方法,因為它們易於閱讀和調試:
10.6 數學
math模組訪問底層的C語言庫用於浮點數學:
random模組提供工具用於隨機數選擇:
SciPy項目有許多其它的模組用於數字運算。
10.7 網際網路訪問
有許多模組用於訪問網際網路和處理網際網路協議。最簡單的兩個是urllib.request用於從URL擷取資料和smtplib用於發送郵件:
10.8 日期和時間
datetime模組提供一些類用於以簡單和複雜的方式操作日期和時間。日期和時間的算術被支援,實現的焦點是關於為輸出格式化和操作的有效數字抽取。模組也支援時區意識的對象:
10.9 資料壓縮
普通的資料存檔和壓縮格式直接被模組支援的有,zlib,gzip,bz2,lzma,zipfile和tarfile:
10.10 效能測量
一些Python使用者對同樣的問題不同的解決方案的相對錶現效能產生了興趣。Python提供了一個測量工具可以立即來回答這些問題。
例如,嘗試使用元組打包和解包特性而不是傳統的方法來交換參數。timeit模組快速地示範一個謙虛效能好處:
相對於timeit的很好的粒度層級,profile和pstats模組提供工具用於在大塊的代碼中標示時間關鍵區段。
10.11 品質控制
開發出高品質軟體的一個方法是在開發期間為每一個函數寫測試,並且在開發過程中經常運行這些測試。
doctest模組提供一個工具用於掃描一個模組和驗證嵌入在一個程式的文檔字串裡面的測試。測試構造簡單的就是剪下和粘貼一個典型的調用和它的結果到文檔字串裡面。這通過給使用者提供樣本改進了文檔,並且它允許doctest模組來確認代碼對於文檔來說仍然是真的:
unittest模組並不是和doctest模組一樣容易,但是,它允許一個更加綜合的測試集合在一個分離的檔案中被維護:
10.12 包含的架構
Python有一個“架構套件含”哲學。通過它的大部分包的有經驗和堅定的能力可以更好的看到這一點。例如:
- xmlrpc.client和xmlrpc.server模組使遠端程序呼叫實現到一個幾乎不重要的任務中。儘管模組名稱,沒有直接的知識或處理必須的XML。
- email包是一個庫用於管理email訊息,包括MIME和其它基於RFC2822的訊息文檔。不像smtplib和poplib,它們實際發送和接收訊息,email包有一個完整的工具集用於構建或解碼複雜的訊息結構(包括附件)和實現網際網路編碼和頭協議。
- xml.dom和xml.sax包對解析這種流行的資料互動格式提供堅強的支援。同樣地,csv模組支援以普通資料庫格式的直接讀和寫。總之,這些模組和包極大的簡化了在Python應用和其它工具之間的資料互動。
- 國際化通過一些模組被支援,包括gettext,locale和codecs包。
本文是對官方網站內容的翻譯,原文地址:http://docs.python.org/3/tutorial/stdlib.html