標籤:串處理 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標準庫概覽