iT邦幫忙

2025 iThome 鐵人賽

DAY 25
0
Software Development

學會 Python 不可怕:我每天學一點的 30 天筆記系列 第 25

Day25 : 標準模組應用 – os、sys、time

  • 分享至 

  • xImage
  •  

Python 之所以強大,不只是語法簡潔,更因為它擁有一套完整又強大的「標準模組庫(Standard Library)」。今天要介紹三個非常實用的模組,這三個模組是許多「系統工具程式」的基礎:

  • os:與作業系統互動(檔案、資料夾)
  • sys:取得程式執行相關資訊
  • time:時間處理與延遲控制

1. os 模組 – 作業系統好幫手
os 模組可以讓我們和電腦的檔案系統互動,例如:
(1) 建立資料夾
(2) 刪除檔案
(3) 取得目前工作目錄
(4) 列出資料夾內容
https://ithelp.ithome.com.tw/upload/images/20251009/20178872m4OLVcfdiC.png
結果會輸出
https://ithelp.ithome.com.tw/upload/images/20251009/201788724edaKd9eEu.png

  • getcwd 代表「get current working directory」,意思是「取得目前的工作目錄」,這行會印出你的 Python 程式現在「所在的資料夾路徑」
  • mkdir 代表「make directory」,意思是「建立資料夾」,這行會在目前工作目錄底下,建立一個名字叫 test_folder 的資料夾
  • os.listdir()會回傳目前資料夾底下所有檔案和資料夾的「清單 (list)」
  • rmdir 代表「remove directory」,會把剛剛建立的 test_folder 刪掉
    ⚠️ 注意:
    os.rmdir() 只能刪「空的」資料夾
    如果裡面有檔案,要先清空或改用其他方法(像 shutil.rmtree())

2. sys 模組 – 程式啟動與環境資訊
sys 是 Python 內建的「系統模組」,可以讓我們跟「Python 直譯器」互動,例如:
(1) 取得 Python 版本
(2) 讀取命令列參數(從終端機傳進來的值)
(3) 強制結束程式
https://ithelp.ithome.com.tw/upload/images/20251009/20178872WkaqFMjkS1.png
結果會輸出
https://ithelp.ithome.com.tw/upload/images/20251009/20178872Q9K58bZigf.png

  • sys.version : 這行會印出目前執行這支程式的 Python 版本
  • argv 是「argument values」的縮寫,用來存放從命令列(Terminal / CMD)執行程式時傳入的參數。sys.argv[0] 永遠是這支程式本身的檔名,sys.argv[1] 之後才是你自己輸入的參數
  • sys.exit() : 用來「提前結束程式」,讓 Python 不會再執行後面的程式碼

3. time 模組 – 控制與顯示時間
Python 內建的 time 模組,能提供很多處理時間與日期的功能,比如:取得現在時間、延遲、格式化時間等
https://ithelp.ithome.com.tw/upload/images/20251009/201788728xYqJAvw9w.png
結果會輸出
https://ithelp.ithome.com.tw/upload/images/20251009/20178872uEtYOAYL8x.png

  • time.time() 會回傳一個「時間戳(timestamp)」,時間戳是從 1970 年 1 月 1 日 00:00:00(UTC) 到現在的秒數(浮點數)
  • time.localtime() 會把時間戳轉換成「本地時間」的結構
  • time.strftime() 用來把時間格式化成我們習慣看的字串
    %Y → 年(四位數)
    %m → 月(01–12)
    %d → 日(01–31)
    %H → 時(00–23)
    %M → 分(00–59)
    %S → 秒(00–59)
  • time.sleep(3) 會讓程式「暫停執行」3 秒鐘

上一篇
Day24 : 基礎物件導向概念 – class、屬性、方法
系列文
學會 Python 不可怕:我每天學一點的 30 天筆記25
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言