程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Python >> Python常用模塊介紹

Python常用模塊介紹

編輯:Python

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模塊用來對字符串進行正則表達式的匹配和替換。

* 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)操作系統的服務

* commands: 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,urllib2,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的方法。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved