⑴ 如何在Windows系統中設置python程序定時運行
樓主最近寫了一個簡單的Python程序,想讓這個小程序每天上午10點定時運行一次,因為我的電腦是Windows系統,無法使用linux下強大的crontab命令,所以我只好求助於度娘。我搜到了好幾個相關的網頁,但是看完之後仍然不明白應該怎麼做,最後經過多次推理和嘗試才設置成功。我相信以後還會有人想要知道在Windows下怎麼設置Python程序定時運行,因此把我的經驗寫在這里,希望能幫助到大家。
為了照顧更多的朋友,下面我將每一步都截圖並加以簡單說明,如果覺得太啰嗦可以直接翻到後面看最關鍵的一步如何設置。
首先,我們肯定是要用到Windows下的【計劃任務】功能(註:樓主的系統是Windows8.1,但是Windows7或Windows10情況應該差不多),如下圖所示:
之後點擊右側的【創建基本任務】,輸入任務名稱以及可選的任務描述:
點擊下一步,設置任務的開始時間,這個應該沒什麼難度,我這里設置為每天早上10點運行此計劃任務:
點擊下一步,設置【操作】為【啟動程序】,再點擊下一步,最關鍵的地方來了,這里該怎麼填寫才能保證系統正確地運行Python程序呢?
廢話不多說,先看具體的設置:
這里解釋一下三個文本框內容的含義,【程序或腳本】文本框中填的是Python編譯器的名稱,一般就是python.exe,【起始於】文本框中填的是Python編譯器的目錄,上圖中假設你的Python編譯器的完整路徑是「C:\Python27\python.exe」,【添加參數】文本框中填的是你的Python程序的完整路徑,這里假設在C盤的Users文件夾下面有一個叫做code.py的文件。如果你的Python程序包含命令行參數,將其添加到Python程序的完整路徑之後即可。
相信聰明的讀者已經發現了,如果將這三部分連在一起,就是「C:\Python27\python.exe
C:\Users\code.py」,這其實就是在Windows命令行下輸入「python
C:\Users\code.py」(或「python
code.py」,如果你正好在C:\Users目錄下),只是在計劃任務的設置中需要給出完整的python編譯器的路徑而已。
之後點擊下一步就可以點擊完成了,是不是很簡單?
⑵ 在Mac上定時執行Python腳本
寫慣了Python腳本,需求越來越多,越來越強烈,那麼面對需求,可能就會有各種定製化的要求條件出來,由於一些事情需要經常執行,但是不能人工每次去執行,自然就想到了能不能定時去執行Python腳本,通過查詢,映入眼簾的是crontab。
具體執行方法是。
在iterm中輸入 crontab -e ,這個的作用是編輯任務名。
隨後就打開了vim,可以進行編輯
具體規則是
在其中我輸入了
其目的是希望每天10點、15點、18點的時候執行Python腳本。
保存之後,會彈出是否允許管理電腦,直接點好就可以。
保存了之後可以通過 crontab -l 來查看是否創建成功
這樣就創建成功了,等待明天的好消息了。
今天早上十點沒有看到執行的操作,然後看到控制台有一條消息是
查看對應的文件描述是
了解到原來是沒有找到python3,所以將命令改為
修改Python的路徑後,有看到了報錯如下:
這說明Python腳本已經運行起來了,但是因為編碼原因沒有完全成功運行,因為本身自動運行也沒有必要print,所以去掉即可,我把print去掉之後,成功執行了腳本。
參考資料: https://www.jianshu.com/p/333d799aebb1
⑶ python定時每個工作日
1).window下是dir命令,linux是ls
我們用platform這個模塊來判斷一下操作系統,a.我們先獲取當前的時間,假設當前時間是2017-02-09 20:19:47.555000
b.然後我們輸入一個你要定時執行的target時間,比如你是x分10秒的時候執行sched_Timer=datetime.datetime(x,x,x,x,x,10),前面的x是並不重要(只要最後是10秒就行了),我們就把目標時間設的比當前晚一點即可:c.好當時間到了20:20:10的時候要運行我們的程序,如何定時到了呢,很簡單用,d.那麼如何讓時間在下一分鍾10秒繼續執行呢,也很簡單用timedelta()
datetime.timedelta(minutes=1)把target時間往後增加一分鍾,然後外邊用個while 死循環hold住就可以了。同樣的這個代碼也可以擴展,把minutes=1改成hours=1就變成了每個小時定時任務,改成days=1就變成每天的定時任務。
⑷ 如何用Python寫一個每分每時每天的定時程序
如何定時執行a.我們先獲取當前的時間now=datetime.datetime.now()假設當前時間是2017-02-0920:19:47.555000b.然後我們輸入一個你要定時執行的target時間比如你是x分10秒的時候執行sched_Timer=datetime.datetime(x,x,x,x,x,10)前面的x是並不重要(只要最後是10秒就行了),我們就把目標時間設的比當前晚一點即可:sched_Timer=datetime.datetime(2017,2,9,20,20,10)c.好當時間到了20:20:10的時候要運行我們的程序如何定時到了呢,很簡單用ifnow==sched_Timer:'runTask'd.那麼如何讓時間在下一分鍾10秒繼續執行呢,也很簡單用timedelta()datetime.timedelta(minutes=1)把target時間往後增加一分鍾sched_Timer=sched_Timer+datetime.timedelta(minutes=1)然後外邊用個while死循環hold住就可以了
⑸ python3定時器
在實際應用中,我們經常需要使用定時器去觸發一些事件。Python中通過線程實現定時器timer,其使用非常簡單。看示例:
一秒後輸出 Hello Timer!
oneshot的定時器這樣就可以實現。
如果要實現cycle的定時器,則可以:
1s後定時器啟動後,將再次以5.5s為間隔周期性執行回調fun_timer函數
結果是:
在使用Python定時器時需要注意:
1.定時器構造函數主要有2個參數,第一個參數為時間,第二個參數為函數名,第一個參數表示多長時間後調用後面第二個參數指明的函數。第二個參數注意是函數對象,進行參數傳遞,用函數名(如fun_timer)表示該對象,不能寫成函數執行語句fun_timer(),不然會報錯。
2.定時器間隔單位是秒,可以是浮點數,如5.5,0.02等,在執行函數fun_timer內部和外部中給的值可以不同。如上例中第一次執行fun_timer是1秒後,後面的都是5.5秒後執行。
3.可以使用cancel停止定時器的工作
⑹ Crontab定時運行python程序
centos Crontab基本入門
首先獲悉crontab的使用方法後,並使用其定時運行Python程序
每分鍾,運行一次程序
test.txt的文檔內容:
重啟不會改變crontab的計劃 唯一能夠影響crontab的操作就是修改齊對應的crontab內容
crontab中python命令使用絕對路徑, 就算程序中的相對路徑也要改為絕對路徑
python解釋器路徑使用絕對路徑 查詢python解釋器路徑: which python
腳本文件使用決定路徑 查詢腳本路徑:find / -name xxx.py
文件:test_juei.py
1、執行env指令得到當前的用戶環境變數。
2、將PATH環境變數添加到crontab的第一行,如下圖所示。
至此問題解決完畢。
⑺ 如何讓python 腳本在指定的時間內運行
最簡單的:x0dx0a寫一個python腳本x0dx0a加一個死循環,判斷時間。x0dx0a如果到了指定的時間,就運行一次,然後在進入死循環。x0dx0a當然不是要你真搞個死循環佔用CPU,你可以用sleep函數。不佔用CPU。x0dx0a每次sleep 10s。。x0dx0a加個啟動項,每次開機啟動這個腳本就行了。
⑻ python如何實現程序定時執行的功能
sleep就可以吧,把程序作為一個線程,啟動線程,裡面加個sleep,示例如下:x0dx0aimport threadingx0dx0aimport timex0dx0aclass Test(threading.Thread):x0dx0a def __init__(self):x0dx0a passx0dx0a x0dx0a def test(self):x0dx0a print 'run test!'x0dx0a x0dx0a def run(self):x0dx0a while True:x0dx0a print time.strftime('%Y-%m-%d %H:%M:%S')x0dx0a self.test()x0dx0a time.sleep(5)x0dx0a#test...x0dx0aa=Test()x0dx0aa.run()x0dx0a#...test