python 標準庫(python standrad library)中包含了大量有用的模組,同時也是每個標準的 python 安裝包中的一部分。熟悉 python 標準庫十分重要,因為只要你熟知這些庫可以做到什麼事,許多問題都能夠輕易解決。
我們將探索這個庫中的一些常用模組。你能在你的 python 安裝包中附帶的文件中的「庫概覽(library reference)」 部分中查詢到所有模組的全部細節。
讓我們來了解一些有用的模組。
注意:如果你覺得本章內容過於超前,你可以先跳過本章。不過,我強烈建議你在適應了採用 python 進行程式設計後再來看看本章。
sys
模組包括了一些針對特定系統的功能。我們已經了解過sys.ar**
列表中包括了命令列引數。
想象一些我們需要檢查正在使用的 python 軟體的版本,sys
模組會給我們相關的資訊。
>>
>
import sys
>>
> sys.version_info
sys.version_info(major=
3, minor=
5, micro=
1, releaselevel=
'final'
, serial=0)
>>
> sys.version_info.major ==
3true
sys
模組包含乙個version_info
元組,它提供給我們版本資訊。第乙個條目是主版本資訊。我們可以調出這些資訊並使用它。
如果你想將一些除錯(debugging)資訊或一些重要的資訊儲存在某個地方,以便你可以檢查你的程式是否如你所期望那般執行,應該怎麼做?你應該如何將這些資訊「儲存在某個地方」?這可以通過logging
模組來實現。
儲存為stdlib_logging.py
:
import os
import platform
import logging
if platform.platform(
).startswith(
'windows'):
logging_file = os.path.join(os.getenv(
'homedrive'),
os.getenv(
'homepath'),
'test.log'
)else
: logging_file = os.path.join(os.getenv(
'home'),
'test.log'
)print
("logging to"
, logging_file)
logging.basicconfig(
level=logging.debug,
format
='%(asctime)s : %(levelname)s : %(message)s'
, filename=logging_file,
filemode=
'w',
)logging.debug(
"start of the program"
)logging.info(
"doing something"
)logging.warning(
"dying now"
)
輸出:
$ python stdlib_logging.py
logging to /users/swa/test.log
$ cat /users/swa/test.log
2014-03
-2909:
27:36,
660: debug : start of the program
2014-03
-2909:
27:36,
660: info : doing something
2014-03
-2909:
27:36,
660: warning : dying now
如果你不能執行cat
命令,你可以通過一款文字編輯器開啟test.log
檔案。
我們使用了三款標準庫中的模組----os
模組用以和作業系統互動,platform
模組用以獲取平台----作業系統----的資訊,logging
模組用來*記錄(log)*資訊。
首先,我們通過檢查platform.platform()
返回的字串來確認我們正在使用的作業系統(有關更多資訊,請參閱import platform; help(platform)
)。如果它是 windows,我們將找出其主驅動器(home drive),主資料夾(home folder)以及我們希望儲存資訊的檔名。將這三個部分匯聚到一起,我們得到了有關檔案的全部位置資訊。對於其它平台而言,我們需要知道的只是使用者的主資料夾位置,這樣我們就可獲得檔案的全部位置資訊。
我們使用os.path.join()
函式來將這三部分位置資訊聚合到一起。使用這一特殊函式,而非僅僅將這幾段字串拼湊在一起的原因是這個函式會確保完整的位置路徑符合當前作業系統的預期格式。
然後我們配置logging
模組,讓它以特定的格式將所有資訊寫入我們指定的檔案。
最後,無論這些資訊是用以除錯,提醒,警告甚至是其它關鍵的訊息,我們都可以將其聚合並記錄。一旦程式開始執行,我們可以檢查這一檔案,從而我們便能知道程式執行過程中究竟發生了什麼,哪怕在使用者執行時什麼資訊都沒有顯示。
每週模組系列
標準庫中還有許多模組值得探索,例如一些用以除錯(debugging)的模組, 處理命令列選項的模組,正規表示式(regular expressions)模組 等等等等。
進一步探索標準庫的最好方法是閱讀由 doug hellmann 撰寫的優秀的 python module of the week 系列(你還可以閱讀它的實體書或是閱讀 python 官方文件)。
我們已經探索了 python 標準庫中提供的諸多的模組的一些功能。在此強烈建議你瀏覽 python 標準庫文件來了解所有可以使用的模組。
接下來,我們將介紹 python 的其它各個方面,讓我們的 python 之旅更加完整。
[1] 標準庫 · 簡明 python 教程
Python基礎 標準庫
1 獲取現在的時間 import time 要使用庫就必須要引入 獲取本地時間,返回的時間的結構體,不是很直觀 t local time.localtime 獲取utc世界統一時間,返回的時間的結構體,不是很直觀 t utc time.gmtime 這個方法返回本地時間的字串,看起來就比較直觀 ti...
Python基礎 五 模組 標準庫
1.模組匯入 兩種 import module namefrom module name import fun name 第一種 import urllib defmain urllib.request.request url 需要通過 模組名 獲取 第二種 from urllib import r...
python基礎之JSON標準庫
我們平常使用的python物件所進行的操作是在記憶體中,當程式關閉就會被清空,所以我們需要用一種合適的方法將這些資料儲存下來。為了將我們的資料進行永久儲存,需要引入序列化 pickling serialization 的概念。序列化的定義 將複雜的python資料結果轉換成乙個二進位制資料集合 資料...