Python標準庫概覽

來源:互聯網
上載者:User

標籤:串處理   att   time   Regex   path   特定   標準輸出   tempfile   port   

  Python標準庫通常被稱為“內建的電池”,自然地提供了廣泛的功能,涵蓋了大概200個左右的包與模組。不斷有高品質的包或模組被開發出來,極大的豐富了標準庫。但有些模組放在標準庫中很難去維護,比如“Berkeley DB”模組,其被清理出標準庫進行單獨維護。還有一些庫,比如PyParsing(建立分析器)也是沒有被加在標準庫中。

1 字串處理

1.1 String模組

  常量:string.ascii_letters、 string.hexdigits。

  string.Formatter子類,自訂字串格式化器。textwrap模組可用於捕獲指定寬度的文本行,並最小化縮排的需求。

1.2 Struct模組

  提供了一些函數,將數字布爾型變數以及字串打包為位元組對象(以其二進位表示),或從位元組對象中拆分為適當的類型,用於跟C語言底層的互動。

1.3 difflib模組

  提供了用於對比序列(比如字串)進行比較的類與方法,並可以產生以標準的“diff”格式與HTML格式輸出資訊。

1.4 reRegex

  最強大的字串處理模組

2 io.StringIO類 

  python提供兩種將文本寫入到檔案的方法,一種是使用open,write方法,一種是print()函數,並將其關鍵字參數file設定為開啟並等待寫入的檔案對象。比如:

    

print("An error message", file = sys.stdout)sys.stdout.write("Another error message\n")

  以上兩行文本都將被列印輸出到sys.stdout中,這是一個檔案對象,表示“標準輸出資料流”

  如果使用了sys.stdout = io.StringIO,那麼輸入到sys.stdout中的檔案都將會發送給io.StringIO。可通過io.StringIO.getvalue()函數來擷取值。

3 命令列程式設計

  fileinput.input()對控制台中重新導向的所有行進行迭代。fileinput.filename()與fileinput.lineno(),該模組可在任意時刻報告當前檔案名稱與行號。

  處理命令列選項模組:optparse和getopt

  

import optparsedef main():    parser = optparse.OptionParser()    parser.add_option("-w","--maxwidth",dest = "maxwidth",type = ‘int‘,help = ("the maximum number of characters that can be""output to string fields[default:%default]"))    parser.add_option("-f","--format",dest = ‘format‘,help = "the format used for outputting numbers""[default:%default]")    parser.set_defaults(maxwidth = 100,format = ".0f")#設定初始值    opts,args = parser.parse_args()

4 數學與數字

  內建:int,float,complex

  數值型標準庫:decimal.Decimal,fraction.Fraction

  標準的數學函數:math

  複數數學函數:cmath

  隨機數:random

5 時間和日期

  calendar和datetime

6 演算法與組合資料類型

  bisect 搜尋有序序列

  heapq將序列轉換為堆    

import heapqheap = []heapq.heappush(heap, (5, "rest"))heapq.heapify()#將列錶轉換為堆,可以自動完成必要的重新排序heapq.heappop()#從堆中移除最小項heapq.merge()#任意數量的排序後的迭代作為參數返回一個迭代子。

  collection包提供了collectio.defaultdict和collection.named- tuple, collection.UserList, collection.UserDict.Collection.deque(跟list作用相同但是list只在列表結尾添加或刪除有很快的速度,collection在開始和結尾都有很快的速度。)

  collection.OrderDict和collection.Counter(提供一個保持各種技術的便捷且快速的方法。以二元組(元素,個數)返回唯一元素或最常見元素的列表。

  array提供了序列類型:array.array(與列表的區別是:物件類型是固定的)

  weakref:弱引用功能。(與通常引用的區別在於如果對某個對象僅有弱引用,那麼該對象仍然可以被調度進入垃圾收集,用於防止僅因為對其引用而存在記憶體裡。

7 檔案,目錄與進程處理

  Shutil模組提供了用於檔案與目錄處理的高層函數,用於包括複製檔案與整個目錄的shutil.copy()和shutil.copytree()函數,移動分類樹的shutil.move()移動整個分類樹的shutil.rmtree()函數

  臨時檔案的建立應該使用tempfile模組,tempfile.mkstemp()建立臨時對象。

  filecmp用於檔案的比較filecmp.cmp(),整個目錄的比較filecmp.cmpfiles()

  Processing 和MultiProcessing

  os模組:os.environ環境變數名和值。os.getcwd可擷取程式工作目錄。os.chdir修改工作目錄。os.access確定某個檔案是否存在或可讀寫。os.listdir()給定目錄中的條目列表os.stat()返迴文件與目錄的各種資訊項(模式,訪問時間,大小)os.mkdir()建立目錄 os.make-dirs()建立中間目錄。os.rmdir()移除空目錄os.rename()重新命名os.walk()整個分類樹上迭代,依次取回每個檔案與目錄的名稱os.path.abspath()返回絕對路徑os.path.split()返回二元組,第一項包含路徑第二項則是檔案名稱(os.path.basename()與os.path.dirname())檔案名稱也可分為兩部分(名稱和副檔名)os.splitext()。os.path.join()接受任意數量的路徑字串,並使用特定分隔字元返回。

Python標準庫概覽

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.