python基礎31[常用模塊介紹]

来源:http://www.cnblogs.com/shouce/archive/2016/04/22/5419846.html
-Advertisement-
Play Games

python除了關鍵字(keywords)和內置的類型和函數(builtins),更多的功能是通過libraries(即modules)來提供的。 常用的libraries(modules)如下: 1)python運行時服務 * copy: copy模塊提供了對複合(compound)對象(list ...


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

* 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的方法。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. 問題:日誌中出現下麵的警告: 警告: The web application [ROOT] appears to have started a thread named [HouseKeeper] but has failed to stop it. This is very likely t ...
  • Given a linked list, swap every two adjacent nodes and return its head. For example,Given 1->2->3->4, you should return the list as 2->1->4->3. Your a ...
  • 1. 第一個問題:時間少了8小時 Log4j 輸出的日誌中,時間比系統時間少了8小時,但是 eclipse 控制台輸出的日誌的時間卻是對的。 log4j配置如下: 有一篇博客講了這個問題:http://peng4602.iteye.com/blog/1844356 但是按照他的方法,沒有作用。 原因 ...
  • json.dumps(datetime.now) 意思是datetime.now不可json序列化,解決辦法是轉化成str或者加一個參數 cls=xxx 詳細見: http://stackoverflow.com/questions/11875770/how-to-overcome-datetime ...
  • gcc
    gcc編譯源文件一步到位的命令就是 實際上這一步包含了四步: 1.預處理 預處理功能主要包括巨集定義,文件包含,條件編譯三部分。分別對應巨集定義命令,文件包含命令,條件編譯命令三部分實現。預處理過程讀入源代碼,檢查包含預處理指令的語句和巨集定義,並對源代碼進行響應的轉換。預處理過程還會刪除程式中的註釋和多 ...
  • 我們在處理文件、瀏覽網頁、編寫程式時,時不時會碰到亂碼的情況。亂碼幾乎總是令人心煩,讓人困惑。希望通過本節和下節文章,你可以自信從容地面對亂碼,恢復亂碼。 談亂碼,我們就要談數據的二進位表示,我們已經在前兩節談過整數和小數的二進位表示,接下了我們將討論字元和文本的二進位表示。 由於內容比較多,我們將 ...
  • 海洋CMS仿非凡影視電影網站整站源碼,響應式佈局,完美支持手機WAP+ipad+PC電腦版 海洋CMS仿非凡影視電影網站整站源碼,響應式佈局,完美支持手機WAP+ip<ignore_js_op> 源碼下載:http://code.662p.com/list/4_1.html 海洋CMS仿非凡影視電影 ...
  • 博主自己搗鼓的介面框架先到這裡 等工作上正式開始使用再後續完善需求 還是繼續學習python、學編程就直接動手寫 就想看看python+selenium的組合 什麼都不多說、先下載安裝 博主這裡已經安裝了pip 所以直接cmd進入python路徑下的Scripts文件目錄下 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...