轉載至公眾號 python開發者
今天給大家介紹一下200多個Python標准庫,讓大家對Python標准庫有一個大致的認識。
關於Python標准庫
眾所周知,Python是一個依賴強大的組件庫完成對應功能的語言,為了便捷實現各項功能,前輩大牛們打造了多種多樣的工具庫公開提供給大眾使用,而越來越多的庫已經因為使用的廣泛和普遍及其功能的強大,已經成為Python的標准庫。
時至今日,Python 標准庫已經非常龐大,所提供的組件涉及范圍十分廣泛,正如本文后面的內容中所顯示的。這個庫包含了多個內置模塊 (以 C 編寫),Python 程序員必須依靠它們來實現系統級功能,例如文件 I/O,此外還有大量以 Python 編寫的模塊,提供了日常編程中許多問題的標准解決方案。其中有些模塊經過專門設計,通過將特定平台功能抽象化為平台中立的 API 來鼓勵和加強 Python 程序的可移植性。
Windows 版本的 Python 安裝程序通常包含整個標准庫,往往還包含許多額外組件。對於類 Unix 操作系統,Python 通常會分成一系列的軟件包,因此可能需要使用操作系統所提供的包管理工具來獲取部分或全部可選組件。
在這個標准庫以外還存在成千上萬並且不斷增加的其他組件 (從單獨的程序、模塊、軟件包直到完整的應用開發框架),均可以在網絡上搜索到並下載使用。
目錄列表
本文將按以下順序列舉各分類下的標准庫:
文本
二進制數據
數據類型
數學
函數式編程
文件與目錄
持久化
壓縮
文件格式化
加密
操作系統工具
並發
進程間通信
互聯網
HTML與XML
互聯網協議與支持
多媒體
國際化
編程框架
Tk圖形用戶接口
開發工具
調試
運行時
解釋器
導入模塊
Python語言
其它
Windows相關
Unix相關
文本
string:通用字符串操作
re:正則表達式操作
difflib:差異計算工具
textwrap:文本填充
unicodedata:Unicode字符數據庫
stringprep:互聯網字符串准備工具
readline:GNU按行讀取接口
rlcompleter:GNU按行讀取的實現函數
二進制數據
struct:將字節解析為打包的二進制數據
codecs:注冊表與基類的編解碼器
數據類型
datetime:基於日期與時間工具
calendar:通用月份函數
collections:容器數據類型
collections.abc:容器虛基類
heapq:堆隊列算法
bisect:數組二分算法
array:高效數值數組
weakref:弱引用
types:內置類型的動態創建與命名
copy:淺拷貝與深拷貝
pprint:格式化輸出
reprlib:交替repr()的實現
數學
numbers:數值的虛基類
math:數學函數
cmath:復數的數學函數
decimal:定點數與浮點數計算
fractions:有理數
random:生成偽隨機數
函數式編程
itertools:為高效循環生成迭代器
functools:可調用對象上的高階函數與操作
operator:針對函數的標准操作
文件與目錄
os.path:通用路徑名控制
fileinput:從多輸入流中遍歷行
stat:解釋stat()的結果
filecmp:文件與目錄的比較函數
tempfile:生成臨時文件與目錄
glob:Unix風格路徑名格式的擴展
fnmatch:Unix風格路徑名格式的比對
linecache:文本行的隨機存儲
shutil:高級文件操作
macpath:MacOS 9路徑控制函數
持久化
pickle:Python對象序列化
copyreg:注冊機對pickle的支持函數
shelve:Python對象持久化
marshal:內部Python對象序列化
dbm:Unix“數據庫”接口
sqlite3:針對SQLite數據庫的API2.0
壓縮
zlib:兼容gzip的壓縮
gzip:對gzip文件的支持
bz2:對bzip2壓縮的支持
lzma:使用LZMA算法的壓縮
zipfile:操作ZIP存檔
tarfile:讀寫tar存檔文件
文件格式化
csv:讀寫CSV文件
configparser:配置文件解析器
netrc:netrc文件處理器
xdrlib:XDR數據編碼與解碼
plistlib:生成和解析Mac OS X.plist文件
加密
hashlib:安全散列與消息摘要
hmac:針對消息認證的鍵散列
操作系統工具
os:多方面的操作系統接口
io:流核心工具
time:時間的查詢與轉化
argparser:命令行選項、參數和子命令的解析器
optparser:命令行選項解析器
getopt:C風格的命令行選項解析器
logging:Python日志工具
logging.config:日志配置
logging.handlers:日志處理器
getpass:簡易密碼輸入
curses:字符顯示的終端處理
curses.textpad:curses程序的文本輸入域
curses.ascii:ASCII字符集工具
curses.panel:curses的控件棧擴展
platform:訪問底層平台認證數據
errno:標准錯誤記號
ctypes:Python外部函數庫
並發
threading:基於線程的並行
multiprocessing:基於進程的並行
concurrent:並發包
concurrent.futures:啟動並行任務
subprocess:子進程管理
sched:事件調度
queue:同步隊列
select:等待I / O完成
dummy_threading:threading模塊的替代(當_thread不可用時)
_thread:底層的線程API(threading基於其上)
_dummy_thread:_thread模塊的替代(當_thread不可用時)
進程間通信
socket:底層網絡接口
ssl:socket對象的TLS / SSL填充器
asyncore:異步套接字處理器
asynchat:異步套接字命令 / 響應處理器
signal:異步事務信號處理器
mmap:內存映射文件支持
互聯網
email:郵件與MIME處理包
json:JSON編碼與解碼
mailcap:mailcap文件處理
mailbox:多種格式控制郵箱
mimetypes:文件名與MIME類型映射
base64:RFC
3548:Base16、Base32、Base64編碼
binhex:binhex4文件編碼與解碼
binascii:二進制碼與ASCII碼間的轉化
quopri:MIME
quoted - printable數據的編碼與解碼
uu:uuencode文件的編碼與解碼
HTML與XML
html:HTML支持
html.parser:簡單HTML與XHTML解析器
html.entities:HTML通用實體的定義
xml:XML處理模塊
xml.etree.ElementTree:樹形XML元素API
xml.dom:XML DOM API
xml.dom.minidom:XML DOM最小生成樹
xml.dom.pulldom:構建部分DOM樹的支持
xml.sax:SAX2解析的支持
xml.sax.handler:SAX處理器基類
xml.sax.saxutils:SAX工具
xml.sax.xmlreader:SAX解析器接口
xml.parsers.expat:運用Expat快速解析XML
互聯網協議與支持
webbrowser:簡易Web瀏覽器控制器
cgi:CGI支持
cgitb:CGI腳本反向追蹤管理器
wsgiref:WSGI工具與引用實現
urllib:URL處理模塊
urllib.request:打開URL連接的擴展庫
urllib.response:urllib模塊的響應類
urllib.parse:將URL解析成組件
urllib.error:urllib.request引發的異常類
urllib.robotparser:robots.txt的解析器
http:HTTP模塊
http.client:HTTP協議客戶端
ftplib:FTP協議客戶端
poplib:POP協議客戶端
imaplib:IMAP4協議客戶端
nntplib:NNTP協議客戶端
smtplib:SMTP協議客戶端
smtpd:SMTP服務器
telnetlib:Telnet客戶端
uuid:RFC4122的UUID對象
socketserver:網絡服務器框架
http.server:HTTP服務器
http.cookies:HTTPCookie狀態管理器
http.cookiejar:HTTP客戶端的Cookie處理
xmlrpc:XML - RPC服務器和客戶端模塊
xmlrpc.client:XML - RPC客戶端訪問
xmlrpc.server:XML - RPC服務器基礎
ipaddress:IPv4 / IPv6控制庫
多媒體
audioop:處理原始音頻數據
aifc:讀寫AIFF和AIFC文件
sunau:讀寫Sun AU文件
wave:讀寫WAV文件
chunk:讀取IFF大文件
colorsys:顏色系統間轉化
imghdr:指定圖像類型
sndhdr:指定聲音文件類型
ossaudiodev:訪問兼容OSS的音頻設備
國際化
gettext:多語言的國際化服務
locale:國際化服務
編程框架
turtle:Turtle圖形庫
cmd:基於行的命令解釋器支持
shlex:簡單詞典分析
Tk圖形用戶接口
tkinter:Tcl / Tk接口
tkinter.ttk:Tk主題控件
tkinter.tix:Tk擴展控件
tkinter.scrolledtext:滾軸文本控件
開發工具
pydoc:文檔生成器和在線幫助系統
doctest:交互式Python示例
unittest:單元測試框架
unittest.mock:模擬對象庫
test:Python回歸測試包
test.support:Python測試工具套件
venv:虛擬環境搭建
調試
bdb:調試框架
faulthandler:Python反向追蹤庫
pdb:Python調試器
timeit:小段代碼執行時間測算
trace:Python執行狀態追蹤
運行時
sys:系統相關的參數與函數
sysconfig:訪問Python配置信息
builtins:內置對象
main:頂層腳本環境
warnings:警告控制
contextlib:with狀態的上下文工具
abc:虛基類
atexit:出口處理器
traceback:打印或讀取一條棧的反向追蹤
future:未來狀態定義
gc:垃圾回收接口
inspect:檢查存活的對象
site:址相關的配置鈎子(hook)
fpectl:浮點數異常控制
distutils:生成和安裝Python模塊
解釋器
code:基類解釋器
codeop:編譯Python代碼
導入模塊
imp:訪問import模塊的內部
zipimport:從ZIP歸檔中導入模塊
pkgutil:包擴展工具
modulefinder:通過腳本查找模塊
runpy:定位並執行Python模塊
importlib:import的一種實施
Python語言
parser:訪問Python解析樹
ast:抽象句法樹
symtable:訪問編譯器符號表
symbol:Python解析樹中的常量
token:Python解析樹中的常量
keyword:Python關鍵字測試
tokenize:Python源文件分詞
tabnany:模糊縮進檢測
pyclbr:Python類瀏覽支持
py_compile:編譯Python源文件
compileall:按字節編譯Python庫
dis:Python字節碼的反匯編器
pickletools:序列化開發工具
其他
formatter:通用格式化輸出
Windows相關
msilib:讀寫Windows的Installer文件
msvcrt:MS VC + + Runtime的有用程序
winreg:Windows注冊表訪問
winsound:Windows聲音播放接口
Unix相關
posix:最常用的POSIX調用
pwd:密碼數據庫
spwd:影子密碼數據庫
grp:組數據庫
crypt:Unix密碼驗證
termios:POSIX風格的tty控制
tty:終端控制函數
pty:偽終端工具
fcntl:系統調用fcntl()和ioctl()
pipes:shell管道接口
resource:資源可用信息
nis:Sun的NIS的接口
syslog:Unix 日志服務