Python常用模組介紹

來源:互聯網
上載者:User
python除了關鍵字(keywords)和內建的類型和函數(builtins),更多的功能是通過libraries(即modules)來提供的。

常用的libraries(modules)如下:

1)python運行時服務

* copy: copy模組提供了對複合(compound)對象(list,tuple,dict,custom class)進行淺拷貝和深拷貝的功能。

* pickle: pickle模組被用來序列化python的對象到bytes流,從而適合儲存到檔案,網路傳輸,或資料庫儲存。(pickle的過程也被稱serializing,marshalling或者flattening,pickle同時可以用來將bytes流還原序列化為python的對象)。

* sys:sys模組包含了跟python解析器和環境相關的變數和函數。

* 其他: atexit,gc,inspect,marshal,traceback,types,warnings,weakref。

2)數學

* decimal:python中的float使用雙精確度的二進位浮點編碼來表示的,這種編碼導致了小數不能被精確的表示,例如0.1實際上記憶體中為0.100000000000000001,還有3*0.1 == 0.3 為False. decimal就是為瞭解決類似的問題的,擁有更高的精確度,能表示更大範圍的數字,更精確地四捨五入。

* math:math模組定義了標準的數學方法,例如cos(x),sin(x)等。

* random:random模組提供了各種方法用來產生隨機數。

* 其他:fractions,numbers。

3)資料結構,演算法和代碼簡化

* array: array代表數組,類似與list,與list不同的是只能儲存相同類型的對象。

* bisect: bisect是一個有序的list,其中內部使用二分法(bitsection)來實現大部分操作。

* collections:collections模組包含了一些有用的容器的高效能實現,各種容器的抽象基類,和建立name-tuple對象的函數。例如包含了容器deque,defaultdict,namedtuple等。

* heapq:heapq是一個使用heap實現的帶有優先順序的queue。

* itertools:itertools包含了函數用來建立有效iterators。所有的函數都返回iterators或者函數包含iterators(例如generators 和generators expression)。

* operator: operator提供了訪問python內建的操作和解析器提供的特殊方法,例如 x+y 為 add(x,y),x+=y為iadd(x,y),a % b 為mod(a,b)等等。

* 其他:abc,contextlib,functools。

4) string 和 text 處理

*codecs:codecs模組被用來處理不同的字元編碼與unicode text io的轉化。

* re:re模組用來對字串進行Regex的匹配和替換。

* string:string模組包含大量有用的常量和函數用來處理字串。也包含了新字串格式的類。

* struct:struct模組被用來在python和二進位結構間實現轉化。

* unicodedata:unicodedata模組提供訪問unicode字元資料庫

5) python資料庫訪問

* 關係型資料庫擁有共同的規範Python Database API Specification V2.0,MySQL,Oracle等都實現了此規範,然後增加自己的擴充。

* sqlite3: sqlite3 模組提供了SQLite資料庫訪問的介面。SQLite資料庫是以一個檔案或記憶體的形式存在的自包含的關係型資料庫。

* DBM-style 資料庫模組:python提供了打了的modules來支援UNIX DBM-style資料庫檔案。dbm模組用來讀取標準的UNIX-dbm資料庫檔案,gdbm用來讀取GNU dbm資料庫檔案,dbhash用來讀取Berkeley DB資料庫檔案。所有的這些模組提供了一個對象實現了基於字串的持久化的字典,他與字典dict非常相似,但是他的keys和values都必須是字串。

* shelve:shelve模組使用特殊的“shelf”對象來支援持久化對象。這個對象的行為與dict相似,但是所有的他儲存的對象都使用基於hashtable的資料庫(dbhash,dbm,gdbm)儲存在硬碟。與dbm模組的區別是所儲存的對象不僅是字串,而且可以是任意的與pickle相容的對象。

6)檔案和目錄處理

* bz2:bz2模組用來處理以bzip2壓縮演算法壓縮的檔案。

* filecmp:filecmp模組提供了函數來比較檔案和目錄。

* fnmatch:fnmatch模組提供了使用UNIX shell-style的萬用字元來匹配檔案名稱。這個模組只是用來匹配,使用glob可以獲得匹配的檔案清單。

* glob:glob模組返回了某個目錄下與指定的UNIX shell萬用字元匹配的所有檔案。

* gzip:gzip模組提供了類GzipFile,用來執行與GNUgzip程式相容的檔案的讀寫。

* shutil: shutil模組用來執行更進階別的檔案操作,例如拷貝,刪除,改名。shutil操作之針對一般的檔案,不支援pipes,block devices等檔案類型。

* tarfile: tarfile模組用來維護tar封存檔案。tar沒有壓縮的功能。

* tempfile:tempfile模組用來產生臨時檔案和檔案名稱。

* zipfile: zipfile模組用來處理zip格式的檔案。

* zlib,zlib模組提供了對zlib庫的壓縮功能的訪問。

7)作業系統的服務

* cmmands: commands模組被用來執行簡單的系統命令,命令以字串的形式傳入,且同時以字串的形式返回命令的輸出。但是此模組只在UNIX系統上可用。

* configParser,configParser模組用來讀寫windows的ini格式的設定檔。

* datetime,datetime模組提供了各種類型來表示和處理日期和時間。

* errno, 定義了所有的errorcode對應的符號名字。

* io,io模組實現了各種IO形式和內建的open()函數。

* logging, logging模組靈活方便地對應用程式記錄events,errors,warnings,和debuging 資訊。這些log資訊可以被收集,過濾,寫到檔案或系統log,甚至通過網路發送到遠端機器上。

*mmap,mmap模組提供了記憶體對應檔對象的支援,使用記憶體對應檔與使用一般的檔案或byte字串相似。

*msvcrt,mscrt只可以在windows系統使用,用來訪問Visual C執行階段程式庫的很多有用的功能。

*optparse,optparse模組更進階別來處理UNIX style的命令列選項sys.argv。

* os,os模組對通用的作業系統服務提供了可移植的(portable)的介面。os可以認為是nt和posix的抽象。nt提供windows的服務介面,posix提供UNIX(linux,mac)的服務介面。

* os.path,os.path模組以可移植的方式來處理路徑相關的操作。

* signal,signal模組用來實現訊號(signal)處理,往往跟同步有關。

* subprocess,subprocess模組包含了函數和對象來統一建立新進程,控制新進程的輸入輸出資料流,處理進程的返回。

* time,time模組提供了各種時間相關的函數。常用的time.sleep().

* winreg, winreg模組用來操作windows註冊表。

* 其他:fcntl。

8)線程和並行

* multiprocessing,multiprocessing模組提供通過subprocess來載入多個任務,通訊,共用資料,執行各種同步操作。

* threading,threading模組提供了thread類很很多的同步方法來實現多線程編程。

* queue,queue模組實現了各種多生產者,多消費者隊列,被用來實現多線程程式的資訊安全交換。

* 其他:Coroutines and Microthreading。

9)網路編程和通訊端(sockets)

* asynchat,asynchat模組通過封裝asyncore來簡化了應用程式的網路非同步處理。

* ssl,ssl模組被用來使用secure sockets layer(SSL)封裝socket對象,從而使得實現資料加密和終端認證。python使用openssl來實現此模組。

* socketserver,socketserver模組提供了類型簡化了TCP,UDP和UNIX領域的socket server的實現。

* 其他:asyncore,select。

10)internet應用程式編程

* ftplib,ftplib模組實現了ftp的client端協議。此模組很少使用,因為urllib提供了更進階的介面。

* http包,包含了http client和server的實現和cookies管理的模組。

* smtplib,smtplib包含了smtp client的底層介面,用來使用smtp協議發送郵件。

* urllib,urllib包提供了進階的介面來實現與http server,ftp server和本地檔案互動的client。

* xmlrpc,xmlrpc模組被用類實現XML-RPC client。

11)web 編程

* cgi,cgi模組用來實現cgi指令碼,cgi程式一般地被webserver執行,用來處理使用者在form中的輸入,或產生一些動態內容。當與cgi指令碼有管的request被提交,webserver將cgi作為子進程執行,cgi程式通過sys.stdin或環境變數來獲得輸入,通過sys.stdout來輸出。

* webbrowser,webbrowser模組提供了平台獨立的工具函數來使用web browser開啟文檔。

* 其他:wsgiref/WSGI (Python Web Server Gateway Interface).

12) internet 資料處理和編碼

* base64,base64模組提供了base64,base32,base16編碼方式,用來實現二進位與文本間的編碼和解碼。base64通常用來對編碼位元據,從而嵌入到郵件或http協議中。

* binascii,binascii模組提供了低級的介面來實現二進位和各種ASCII編碼的轉化。

* csv,csv模組用來讀寫comma-separated values(CSV)檔案。

* email,email包提供了大量的函數和對象來使用MIME標準來表示,解析和維護email訊息。

* hashlib,hashlib模組實現了各種secure hash和message digest algorithms,例如MD5和SHA1。

* htmlparser(html.parser),此模組定義了HTMLParser來解析HTML和XHTML文檔。使用此類,需要定義自己的類且繼承於HTMLParser。

* json,json模組被用類序列化或飯序列化Javascript object notation(JSON)對象。

* xml,xml包提供了各種處理xml的方法。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.