怎樣在windows上定時執行python指令碼

zz0eyu發表於2018-09-04

作為一個需要在電腦上工作和學習的人,一件十分困擾我的事情就是怎樣不受網際網路中其他內容的干擾而專注於自己想要做的事情,有的時候真的是沉浸於微博上的訊息,忘了自己本來想要做的事。不過我有一件神器,自己偶像的音訊激勵,所以決定寫一個python指令碼,讓電腦每小時定時播放,提醒自己專注學習。

讓python播放音訊

python播放音訊實際上很簡單,使用pygame模組,只需要四五行的程式碼。

1 import pygame, time
2  
3 pygame.mixer.init()
4 track = pygame.mixer.music.load("E:\Entertainment\Audios\by\study.mp3")
5 pygame.mixer.music.play()
6 time.sleep(10)
7 pygame.mixer.music.stop()

注意這裡要讓程式sleep一段時間,因為我的音訊本身只有7秒,所以這裡睡眠10秒就足夠了。

windows定時任務

這是windows自帶的功能,自認為還是比較強大的。

請返回桌面,在我的電腦上右鍵選擇管理(Manage) -> System Tools -> Task Scheduler,在右側選擇Create Basic Task

這時會彈出一個新的視窗:

  1. 輸入任務名,下一步
  2. 之後會讓你選擇任務的執行週期,這裡選在Daily,然後選擇開始時間,Recur every這裡填寫1天,下一步
  3. 這裡要選擇任務執行的動作,這裡為了執行python指令碼,選擇start a program,下一步
  4. 接下來就要選擇執行的程式了,這裡需要特別注意:
    1. Program/script: Browse…這裡選擇pythonw.exe這個程式(後面會說明為什麼不選擇python.exe)。因為我的電腦裡同時安裝了python2和python3,所以我的最終路徑是這樣的C:UsersYJChanAppDataLocalProgramsPythonPython36pythonw.exe 
    2. Add arguments這裡填寫你的指令碼路徑:E:EntertainmentAudiosyautoplay.py
    3. Start in保持空白即可

任務建立完成,但是這時候還是每天執行一次,我們需要把它修改為每小時執行一次:

在Task Scheduler Library中找到你剛剛新增的任務,雙擊,在trigger選項卡中有一個Advancec settings,勾選Repeat task every 這裡選擇1 hour,後面的for duration of選擇1 day,這樣每小時播放就實現了

為什麼要選擇pythonw.exe

好奇的同學可以試一下選擇python.exe,其實原因很簡單,因為我這裡想要在後臺播放音訊,而不是每次播放音訊的時候都彈出一個命令列視窗。

這也是pyw和py檔案的區別,pyw格式是用來開發純圖形化介面程式的,所以預設沒有命令列視窗,這裡很好的實現了我想要後臺播放音訊的想法。

試驗一下

這時候任務其實已經建立完畢了,不過我很好奇它的實現效果。所以,仍舊是在Task Scheduler Library中,在新建的任務上右鍵,選擇Run,成功,已經可以聽到我想要的音訊了。

相關文章