Python的標準函式庫十分龐大,其中既有Python語言本身特定的類型和宣告,包含支援內建資料操作的基本模組,如昨天用於數學計算的math模組、用於字串處理的string模組以及實現各種I/O形式的io模組等;還有用於特定領域,幫助使用者處理各種工具的模組工具,如文件產生、單元測試、執行緒、資料庫、網頁瀏覽器、FTP、XML、GUI等。這些模組為作業系統、解譯器和網際網路間的互動提供有效的工具,同時獲得充分的測試,能用來作為應用程式開發的起點。
以下介紹幾個標準函式庫中的基本模組,期望未來也能多熟悉精進。
os模組包含了常用的作業系統功能,同時是個好的處理路徑的方式,那麼就來import試用看看吧。
import os
#取得系統平台資訊
os.name
#獲取當前工作目錄
os.getcwd()
#返回指定目錄下的所有文件和目錄名
s.listdir(path)
#改變目前路徑
os.chdir(path)
#建立新目錄
os.makedir(path)
#刪除空目錄
os.removedirs(path)
#刪除文件
os.remove("文件名")
#執行Shell指令
os.system("命令")
#得到當前文件的絕對路徑
os.path.abspath()
#輸入一個全路徑名。得到當前文件的路徑
os.path.dirname("pathname")
#輸入一個全路徑名。得到文件名
os.path.basename("fullPathName")
#判斷路徑是否存在
os.path.exists("fullPathName")
#路徑拼接
os.path.join("pathname1","pathname2")
例:利用os.walk()和os.path.join來拼接文件的絕對路徑
for par_dir , files in os.walk(PATH): #walk輸出形式為(主目錄,子目錄,子文件)
for file in files:
file_path = os.path.join(par_dir, file)
print(file_path)
Python有提供很多用於操作日期時間的模組,如calendar、time、datetime等。其中calendar就能把指定的年日輸出出來,如下:
>>> import calendar
>>> calendar.prmonth(2018, 11)
November 2018
Mo Tu We Th Fr Sa Su
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
想要年曆的話,改成calendar.prcal()
就行了。
下面來看time和datetime模組的應用:
>>> import datetime
>>> d1 = datetime.datetime(2018, 1, 17)
>>> d2 = datetime.datetime(2018, 10, 15)
>>> print((d2-d1).days)
271
>>> datetime.datetime.now()
datetime.datetime(2018, 11, 2, 17, 6, 28, 347569)
>>> datetime.datetime(2019,1,17).weekday()
3
# %m表月份, %d表月中第幾天, %Y表四位數年份, %X表時間字串 , %y表二位數年份, %A表星期
>>> time.strftime("%Y-%m-%d %X",time.localtime())
'2018-11-02 17:12:48'
>>> time.strftime("%y-%m-%d %A",time.localtime())
'18-11-02 Friday'
>>> import time
>>> a = '2018-11-02 18:00:00'
>>> t = time.strptime(a,'%Y-%m-%d %H:%M:%S') #strptime()字串轉時間
>>> time.strftime('%Y年-%m月-%d日',t) #strftime()時間轉日期
'2018年-11月-02日'
>>> time.strftime('%Y年%m月%d日',t)
'2018年11月02日'
sys模組提供了許多函式和變數來處理Python執行時環境的不同部分。
import sys
#退出程序
sys.exit(n)
#返回當前作業系統平臺名稱
sys.platform
#返回執行文件時的傳參列表
sys.argv
#返回模組的搜尋路徑
sys.path
#標準輸出
sys.stdout.write("內容")
sys.stdout.flush()
例:模擬進度條
import sys
import time
def view_bar(num,total):
rate = num / total
rate_num = int(rate * 10) + 1
r = '\r%s>%d%%' % ('=' * rate_num, rate_num,)
sys.stdout.write(r)
sys.stdout.flush
for i in range(0,10):
time.sleep(0.1)
view_bar(i,10)
一直忘記講,用內建函式dir()
可以檢視所有目前的模組資訊。
在剛開始啟動Python時,只會有那幾個預設模組,如下:
>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']
在匯入math模組後,就可以知道有增加了!
>>> import math
>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'math']