91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python執行定時任務(非框架)

發布時間:2020-07-28 15:30:05 來源:網絡 閱讀:559 作者:ck_god 欄目:編程語言

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()]

python執行定時任務(非框架)

當然你要計算比如情人節,圣誕節什么的都可以用上面的程序,或者整個列表把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住就可以了

python執行定時任務(非框架)

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

作者:菜鳥學python 鏈接:http://www.jianshu.com/p/ab8d9e576ac4 來源:簡書 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。



以下是這篇文章的評論,我覺得還是不錯的,也解決上面的問題時間不匹配的問題,特地貼過來來看看

按樓主提供的方法嘗試了下,樓主提供的一種定時思路是可行的,不過在具體執行過程中“if now==sched_Timer:”這里可能會有點問題。

在while循環中,datetime.datetime.now()獲取的時間是“2017-8-10 17:22:54.123456”這種格式的,而樓主設置的時間格式 print 出來默認是“2017-8-10 17:22:54”,可能是程序運行時間的因素,實際運行過程中判定二者相等,進而執行if內的語句的情況很少出現(我這里嘗試了半個下午,沒有一次判定二者相等)。

下面是我自己稍作修改后自行使用的:
import time

sched_time = datetime.datetime(2017, 8, 10, 17, 31, 0)
loopflag = 0
while True:
now = datetime.datetime.now()
if sched_time<now<(sched_time+datetime.timedelta(seconds=1)):
loopflag = 1
time.sleep(1)
if loopflag == 1:
func() #此處為你自己想定時執行的功能函數
loopflag = 0


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天峻县| 策勒县| 英德市| 静安区| 龙岩市| 和平县| 蚌埠市| 凌海市| 准格尔旗| 新晃| 康定县| 南京市| 会宁县| 乡城县| 科尔| 太湖县| 漳州市| 延安市| 怀仁县| 青川县| 台南县| 时尚| 东乌| 张掖市| 从江县| 奇台县| 扎兰屯市| 贡山| 塔城市| 仙桃市| 汝南县| 卢氏县| 东辽县| 枣强县| 蓝田县| 怀宁县| 沙河市| 台山市| 房产| 虞城县| 泊头市|