承接我們前面所實作的記事提醒小程式,如果想讓它從一個手動操作的工具,進化成一個能**自動處理「定時執行」或「時間管理」**的系統,我們就需要更強大的工具。
在 Python 中,我們可以依靠專門處理時間和排程的工具模組來實現這些功能。今天,我們就要來探討兩個非常實用的工具── datetime、schedule。
在我們日常的工作和程式開發中,定時執行與時間提醒是不可或缺的功能,為什麼它如此重要呢?
首先要來說他最主要的好處是:
若要舉現實中例子,這些功能在各行各業都有廣泛的應用,像是說:確保管理階層每天早上 9 點準時收到營運報告;應用程式發送會議或待辦事項通知;確保網路爬蟲每天凌晨定時抓取最新的資料等等。
在 Python 中,datetime 模組是處理日期與時間的必備工具,它能夠幫助我們取得當前時間、格式化顯示、計算時間差,對於日常開發非常實用。
from datetime import datetime, timedelta
now = datetime.now()
print("現在時間:", now)
formatted = now.strftime("%Y-%m-%d %H:%M:%S")
print("格式化後:", formatted)
future = now + timedelta(days=3, hours=5)
print("三天五小時後:", future)
schedule 是一個第三方排程套件,特色是簡單好用,能夠讓你快速寫出週期性任務,例如定時提醒或定期執行程式。
我是利用 Android cmd 來安裝套件,非常簡易實用。
pip install schedule
以下提供語法範例:
import schedule
import time
def task():
print("這是一個提醒任務")
# 每 10 秒執行一次
schedule.every(10).seconds.do(task)
# 每天 10:30 執行
schedule.every().day.at("10:30").do(task)
# 讓排程持續運作
while True:
schedule.run_pending()
time.sleep(1)
這樣就可以建立一個簡單的提醒小幫手,例如每分鐘輸出訊息,或模擬鬧鐘效果。
在實務應用中,常常需要同時判斷時間與排程任務,這時候 datetime 與 schedule 搭配就能發揮威力,datetime 負責時間格式的處理和比較,而 schedule 負責任務的定時觸發。
範例為:
import schedule
import time
from datetime import datetime
def reminder():
now = datetime.now().strftime("%H:%M:%S")
print(f"[{now}] 該喝水囉!")
schedule.every(1).minutes.do(reminder)
while True:
schedule.run_pending()
time.sleep(1)
在今天的內容裡,我們看到了 datetime 與 schedule 各自扮演的角色,datetime 專門負責記錄與計算時間;而 schedule 會在對的時間提醒我們該做什麼。兩者結合後,小程式就不再只是冷冰冰的程式碼,而是能主動幫忙處理生活瑣事的小幫手。透過這些工具,我們讓程式變得更聰明、更貼近日常。相信之後我們能再加上 GUI 介面或串接 API,發展出一個更完整、更便利的提醒工具,真正融入生活。