如何用Python寫一個每分每時每天的定時程序


1.計算生日是星期幾

當你女朋友要過生日了,你肯定要定找家飯店訂個餐慶祝一下,餐館工作日會空一些,周末位置不好定,要是能知道她的生日是星期幾就好了,下面這個程序就能搞定~~

比如girl friend 的生日假設是 gf_birthday='2017-3-3'

1).我們先把變量格式化成一個datetime對象

birthday=datetime.datetime.strptime(gf_birthday,'%Y-%m-%d')

2).然后利用datetime里面的函數weekday來得到一個下標

birthday.weekday()

3).構造一個weekdays的列表,根據下標從列表里面取出是周幾

weekdays=['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']

weekdays[birthday.weekday()]

 

 
 

當然你要計算比如情人節,聖誕節什么的都可以用上面的程序,或者整個列表把10年的節日都羅列計算一下都是可以了,是不是很簡單,對日期的理解有木有加深了一下下

 

2.定時任務

在Python里面,比如你想定期去爬一個網頁,或者做運維的同學想每天12點去定時download一個文件,或者定時去掃描一些服務器,甚至老板的需求不停的變可能是,每隔5分鍾,或者每小時的整點10分,每周每月都有一些定時任務

用Python怎么破很簡單,下面這個程序輕松搞定

我們先從一個最簡單的例子說,假設我們是每分種的第10秒,去執行一個任務去打印一下當前的目錄

1).window下是dir命令,linux是ls

我們用platform這個模塊來判斷一下操作系統

import platform

os_platfrom=platform.platform()

if os_platfrom.startswith('Darwin'):

print'this is mac os system'

os.system('ls')

elif os_platfrom.startswith('Window'):

print'this is win system'

os.system('dir')

2).如何定時執行

a.我們先獲取當前的時間

now=datetime.datetime.now()

假設當前時間是2017-02-09 20:19:47.555000

b.然后我們輸入一個你要定時執行的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的時候要運行我們的程序

如何定時到了呢,很簡單用

if now==sched_Timer:

'run Task'

d.那么如何讓時間在下一分鍾10秒繼續執行呢,也很簡單用timedelta()

datetime.timedelta(minutes=1)把target時間往后增加一分鍾

sched_Timer=sched_Timer+datetime.timedelta(minutes=1)

然后外邊用個while 死循環hold住就可以了

 
 

同樣的這個代碼也可以擴展,把minutes=1改成hours=1就變成了每個小時定時任務,改成days=1就變成每天的定時任務



作者:菜鳥學python
鏈接:https://www.jianshu.com/p/ab8d9e576ac4
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM