iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 18
0

Python標準函式庫

Python的標準函式庫十分龐大,其中既有Python語言本身特定的類型和宣告,包含支援內建資料操作的基本模組,如昨天用於數學計算的math模組、用於字串處理的string模組以及實現各種I/O形式的io模組等;還有用於特定領域,幫助使用者處理各種工具的模組工具,如文件產生、單元測試、執行緒、資料庫、網頁瀏覽器、FTP、XML、GUI等。這些模組為作業系統、解譯器和網際網路間的互動提供有效的工具,同時獲得充分的測試,能用來作為應用程式開發的起點。

以下介紹幾個標準函式庫中的基本模組,期望未來也能多熟悉精進。

os模組

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)

time和datetime模組

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模組的應用:

  1. 計算兩日期隔的天數
>>> import datetime
>>> d1 = datetime.datetime(2018, 1, 17)
>>> d2 = datetime.datetime(2018, 10, 15)
>>> print((d2-d1).days)
271
  1. 顯示日期時間
>>> datetime.datetime.now()
datetime.datetime(2018, 11, 2, 17, 6, 28, 347569)
  1. 判斷輸入的日期為星期幾
>>> datetime.datetime(2019,1,17).weekday()
3

  1. 格式化日期和時間
# %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'
  1. 將字串轉為時間結構
>>> 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模組

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']

參考資料

  • 書名-大數據起步從Python開始 /吳萍-編著
  • Python之路

上一篇
Day17-模組
下一篇
Day19-Random模組
系列文
Python 30天學習日誌30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言