之前幾篇教學,教咗你寫備份、寄報表、監測網頁價錢等等嘅自動化 Script。但係有冇發覺一個問題:每次都要自己開個命令提示字元、撳一下 Enter 先會跑?如果你朝朝都要記得人手開一次,咁就未算真正「自動」。
呢篇教學教你點樣令 Python Script 定時自己跑——到咗指定時間,電腦自己執行,你連撳制都唔使。我哋會用兩個方法:一個係純 Python 嘅 schedule 套件(適合 Script 長開住嘅機),另一個係 Windows 內置嘅「工作排程器」(Task Scheduler,適合每日定時自動開機跑)。
方法一:用 schedule 套件(程式長開住)
如果你部電腦成日開住(例如公司嗰部收銀機或者文書機),最簡單就係用 schedule 套件,叫 Python 自己計時間。先安裝:
pip install schedule
見到 Successfully installed schedule 就代表得咗。跟住寫一個檔案 auto.py:
import schedule
import time
def job():
print("而家開始跑自動化任務...")
# 每日朝早 9 點跑一次
schedule.every().day.at("09:00").do(job)
while True:
schedule.run_pending()
time.sleep(1)
逐行解釋
- import schedule —— 載入排程套件。
- def job(): —— 定義你想自動做嘅嘢,將之前學過嘅備份、報表、監測 code 擺入嚟就得。
- schedule.every().day.at("09:00").do(job) —— 設定每日 9 點跑一次。想每分鐘、每星期都得,下面會講。
- while True —— 令程式長開住,不斷檢查係咪夠鐘。
- schedule.run_pending() —— 夠鐘就執行任務。
- time.sleep(1) —— 每秒檢查一次,唔會食太多 CPU。
方法二:Windows 工作排程器(開機自動跑)
如果你唔想開住個命令提示字元(或者部機夜晚會熄),用 Windows 內置嘅「工作排程器」更加啱。佢可以喺指定時間自動執行 Python,仲可以到點自動叫醒部機。
步驟:
- 開工作排程器 —— 撳 Windows 鍵,打「工作排程器」或者「Task Scheduler」。
- 建立基本工作 —— 右邊撳「建立基本工作」,改個名(例如「每日報表」)。
- 設定觸發時間 —— 揀「每日」、揀時間(例如 09:00)。
- 揀動作 —— 揀「啟動程式」,程式欄打 python,參數欄打 C:\scripts\auto.py(改做你自己嘅路徑)。
- 完成 —— 搞掂,以後每日到點就自動跑。
排程時間點寫?
schedule 套件支援好多種時間設定,常用嘅有:
- 每分鐘 —— schedule.every().minute.do(job)
- 每個鐘 —— schedule.every().hour.do(job)
- 每日特定時間 —— schedule.every().day.at("09:00").do(job)
- 每星期一 —— schedule.every().monday.at("08:30").do(job)
- 每 10 秒 —— schedule.every(10).seconds.do(job)
常見問題
- 工作排程器話搵唔到 python —— 程式欄用完整路徑,例如 C:\Users\你個名\AppData\Local\Programs\Python\Python311\python.exe。開命令提示字元打 where python 就知實際位置。
- schedule 程式要長開住先會跑 —— 對,方法一靠 while True 令佢長開。想唔使長開,就用方法二嘅工作排程器。
- 部機瞓咗或者熄咗就唔會跑 —— 工作排程器入面可以勾選「喚醒電腦以執行此工作」,咁到點會自動叫醒部機。
總結
Python 教學:由今日起,你之前寫嘅備份、報表、監測 Script 全部可以定時自己跑,唔使再日日記得人手撳制。用 schedule 套件適合長開住嘅機,用 Windows 工作排程器適合要每日自動開機執行嘅情況。設定一次,之後就係真正嘅「全自動」。