天天看點

超詳細的Python标準庫介紹與基本使用方式!

趁着剛吃完飯偷個閑,寫一篇關于Python标準庫的詳細操作,很簡單的!

超詳細的Python标準庫介紹與基本使用方式!

目錄:

超詳細的Python标準庫介紹與基本使用方式!

Python 标準庫概覽概覽

作業系統接口

os 子產品提供了很多與作業系統互動的函數:

超詳細的Python标準庫介紹與基本使用方式!

應該用 import os 風格而非 from os import *。這樣可以保證随作業系統不同而有所變化的 os.open() 不會覆寫内置函數 open()。

在使用一些像 os 這樣的大型子產品時内置的 dir() 和 help() 函數非常有用:

超詳細的Python标準庫介紹與基本使用方式!

針對日常的檔案和目錄管理任務,shutil 子產品提供了一個易于使用的進階接口:

超詳細的Python标準庫介紹與基本使用方式!

glob 子產品提供了一個函數用于從目錄通配符搜尋中生成檔案清單:

>>> import glob

>>> glob.glob('*.py')

['primes.py', 'random.py', 'quote.py']

指令行參數 x

通用工具腳本經常調用指令行參數。這些指令行參數以連結清單形式存儲于 sys 子產品的 argv 變量。例如在指令行中執行 python demo.py one two three 後可以得到以下輸出結果:

getopt 子產品使用 Unix getopt() 函數處理 sys.argv。更多的複雜指令行處理由 argparse 子產品提供。

錯誤輸出重定向和程式終止

sys 還有 stdin, stdout 和 stderr 屬性,即使在 stdout 被重定向時,後者也可以用于顯示警告和錯誤資訊:

>>> sys.stderr.write('Warning, log file not found starting a new one ')

Warning, log file not found starting a new one12

大多腳本的直接終止都使用 sys.exit()。

字元串正則比對

re 子產品為進階字元串處理提供了正規表達式工具。對于複雜的比對和處理,正規表達式提供了簡潔、優化的解決方案:

超詳細的Python标準庫介紹與基本使用方式!

隻需簡單的操作時,字元串方法最好用,因為它們易讀,又容易調試:

>>> 'tea for too'.replace('too', 'two')

'tea for two'

數學

math 子產品為浮點運算提供了對底層C函數庫的通路:

>>> import math

>>> math.cos(math.pi / 4.0)

0.70710678118654757

>>> math.log(1024, 2)

10.0

random 提供了生成随機數的工具:

超詳細的Python标準庫介紹與基本使用方式!

網際網路通路

有幾個子產品用于通路網際網路以及處理網絡通信協定。其中最簡單的兩個是用于處理從 urls 接收的資料的 urllib.request 以及用于發送電子郵件的 smtplib:

超詳細的Python标準庫介紹與基本使用方式!

(注意第二個例子需要在 localhost 運作一個郵件伺服器。)

日期和時間

datetime 子產品為日期和時間處理同時提供了簡單和複雜的方法。支援日期和時間算法的同時,實作的重點放在更有效的處理和格式化輸出。該子產品還支援時區處理。

超詳細的Python标準庫介紹與基本使用方式!

資料壓縮

以下子產品直接支援通用的資料打包和壓縮格式:zlib, gzip, bz2, lzma, zipfile 以及 tarfile。

超詳細的Python标準庫介紹與基本使用方式!

性能度量

有些使用者對了解解決同一問題的不同方法之間的性能差異很感興趣。Python 提供了一個度量工具,為這些問題提供了直接答案。

例如,使用元組封裝和拆封來交換元素看起來要比使用傳統的方法要誘人的多。timeit 證明了後者更快一些:

超詳細的Python标準庫介紹與基本使用方式!

相對于 timeit 的細粒度,profile 和 pstats 子產品提供了針對更大代碼塊的時間度量工具。

品質控制

開發高品質軟體的方法之一是為每一個函數開發測試代碼,并且在開發過程中經常進行測試。

doctest 子產品提供了一個工具,掃描子產品并根據程式中内嵌的文檔字元串執行測試。測試構造如同簡單的将它的輸出結果剪切并粘貼到文檔字元串中。通過使用者提供的例子,它發展了文檔,允許 doctest 子產品确認代碼的結果是否與文檔一緻:

超詳細的Python标準庫介紹與基本使用方式!

unittest 子產品不像 doctest 子產品那麼容易使用,不過它可以在一個獨立的檔案裡提供一個更全面的測試集:

超詳細的Python标準庫介紹與基本使用方式!

“瑞士軍刀”

Python 展現了“瑞士軍刀”的哲學。這可以通過它更大的包的進階和健壯的功能來得到最好的展現。列如:

超詳細的Python标準庫介紹與基本使用方式!

好了,小編今天就分享到這,小夥伴們趕緊 去自己敲代碼試試吧!