200 多個 Python 標準庫介紹
今天給大家介紹一下200多個Python標準庫,讓大家對Python標準庫有一個大致的認識。
關於Python標準庫
01
眾所周知,Python是一個依賴強大的元件庫完成對應功能的語言,為了便捷實現各項功能,前輩大牛們打造了多種多樣的工具庫公開提供給大眾使用,而越來越多的庫已經因為使用的廣泛和普遍及其功能的強大,已經成為Python的標準庫。
時至今日,Python 標準庫已經非常龐大,所提供的元件涉及範圍十分廣泛,正如本文後面的內容中所顯示的。這個庫包含了多個內建模組 (以 C 編寫),Python 程式設計師必須依靠它們來實現系統級功能,例如檔案 I/O,此外還有大量以 Python 編寫的模組,提供了日常程式設計中許多問題的標準解決方案。其中有些模組經過專門設計,通過將特定平臺功能抽象化為平臺中立的 API 來鼓勵和加強 Python 程式的可移植性。
Windows 版本的 Python 安裝程式通常包含整個標準庫,往往還包含許多額外元件。對於類 Unix 作業系統,Python 通常會分成一系列的軟體包,因此可能需要使用作業系統所提供的包管理工具來獲取部分或全部可選元件。
在這個標準庫以外還存在成千上萬並且不斷增加的其他元件 (從單獨的程式、模組、軟體包直到完整的應用開發框架),均可以在網路上搜索到並下載使用。
目錄列表
02
本文將按以下順序列舉各分類下的標準庫:
文字
二進位制資料
資料型別
數學
函數語言程式設計
檔案與目錄
持久化
壓縮
檔案格式化
加密
作業系統工具
併發
程序間通訊
網際網路
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 日誌服務