1. 程式人生 > >Python-標準常用包

Python-標準常用包

  • argparse:在UNIX中,執行命令列程式時常常需要指定各種選項(開關),Python直譯器 就是這樣的典範。這些選項都包含在sys.argv中,但要正確地處理它們絕非容易。模組 argparse使得提供功能齊備的命令列介面易如反掌。
  • cmd:這個模組讓你能夠編寫類似於Python互動式直譯器的命令列直譯器。你可定義命令, 讓使用者能夠在提示符下執行它們。或許可使用這個模組為你編寫的程式提供使用者介面?
  • csv:CSV指的是逗號分隔的值(comma-seperated values),很多應用程式(如很多電子錶 格程式和資料庫程式)都使用這種簡單格式來儲存表格資料。這種格式主要用於在不同 的程式之間交換資料。模組csv讓你能夠輕鬆地讀寫CSV檔案,它還以非常透明的方式處 理CSV格式的一些棘手部分。
  • datetime:如果模組time不能滿足你的時間跟蹤需求,模組datetime很可能能夠滿足。 datetime支援特殊的日期和時間物件,並讓你能夠以各種方式建立和合並這些物件。相比 於模組time,模組datetime的介面在很多方面都更加直觀。
  • difflib:這個庫讓你能夠確定兩個序列的相似程度,還讓你能夠從很多序列中找出與指 定序列最為相似的序列。例如,可使用difflib來建立簡單的搜尋程式。
  • enum:列舉型別是一種只有少數幾個可能取值的型別。很多語言都內建了這樣的型別,如 果你在使用Python時需要這樣的型別,模組enum可提供極大的幫助。
  • functools:這個模組提供的功能是,讓你能夠在呼叫函式時只提供部分引數(部分求值, partial evaluation),以後再填充其他的引數。在Python 3.0中,這個模組包含filter和reduce。
  • hashlib:使用這個模組可計算字串的小型“簽名”(數)。計算兩個不同字串的簽名 時,幾乎可以肯定得到的兩個簽名是不同的。你可使用它來計算大型文字檔案的簽名, 這個模組在加密和安全領域有很多用途1。
  • itertools:包含大量用於建立和合並迭代器(或其他可迭代物件)的工具,其中包括可 以串接可迭代物件、建立返回無限連續整數的迭代器(類似於range,但沒有上限)、反覆 遍歷可迭代物件以及具有其他作用的函式。
  • logging:使用print語句來確定程式中發生的情況很有用。要避免跟蹤時出現大量除錯輸 出,可將這些資訊寫入日誌檔案中。這個模組提供了一系列標準工具,可用於管理一個 9 或多箇中央日誌,它還支援多種優先順序不同的日誌訊息。
  • statistics:計算一組數的平均值並不那麼難,但是要正確地獲得中位數,以確定總體標 準偏差和樣本標準偏差之間的差別,即便對於偶數個元素來說,也需要費點心思。在這 種情況下,不要手工計算,而應使用模組statistics!
  • timeit、profile和trace:模組timeit(和配套的命令列指令碼)是一個測量程式碼段執行時 間的工具。這個模組暗藏玄機,度量效能時你可能應該使用它而不是模組time。模組 profile(和配套模組pstats)可用於對程式碼段的效率進行更全面的分析。模組trace可幫 助你進行覆蓋率分析(即程式碼的哪些部分執行了,哪些部分沒有執行),這在編寫測試代 碼時很有用。