python函數(shù)定時器的簡單介紹

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

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

10年積累的成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有吉木乃免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

now=datetime.datetime.now()

假設(shè)當前時間是2017-02-09 20:19:47.555000

b.然后我們輸入一個你要定時執(zhí)行的target時間

比如你是x分10秒的時候執(zhí)行sched_Timer=datetime.datetime(x,x,x,x,x,10)

前面的x是并不重要(只要最后是10秒就行了),我們就把目標時間設(shè)的比當前晚一點即可:

sched_Timer=datetime.datetime(2017,2,9,20,20,10)

c.好當時間到了20:20:10的時候要運行我們的程序

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

if now==sched_Timer:

'run Task'

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

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

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

然后外邊用個while 死循環(huán)hold住就可以了

如何調(diào)用定時器 python

1 if __name__ == "__main__": 2 Q_w = 0 3 w = TimerMask(howtime=0.8) 4 print("-") 5 w.start() 6 #這里線程輸出這些,做其他事情的 7 while True: 8 time.sleep(0.4) #0.4秒 9 print("- ",Q_w," - WMask:",w) 10 Q_w += 1 11 pa

輸出:

于是你可能會想問,那豈不是每個不同的行為都要寫一個繼承了BaseTimer的類來做事呢,其實不然,你可以寫個函數(shù)調(diào)用的TimerFunc類:

1 class TimerFunc(BaseTimer): 2 """可傳遞任何函數(shù)的定時任務(wù)類""" 3 def __init__(self,func,howtime=1.0,enduring=True): 4 BaseTimer.__init__(self,howtime,enduring) 5 self.func = func 6 7 def exec(self): 8 self.func() #調(diào)用函數(shù) 9 10 #使用方法: 11 def doing(): 12 print("Hello") 13 14 w = TimerFunc(doing) 15 w.start()

輸出:"Hello",并且會每隔1秒執(zhí)行一次

是不是覺得可以做一堆事情了?你可以自由發(fā)揮,繼承BaseTimer類

1 w = TimerFunc(doing,5,False) #這樣就可以定義延遲5秒使用了~ 2 w.start()

python怎么用延時函數(shù),python小白求求幫忙(哭)

用定時器做,1秒鐘喚醒一次響應(yīng)函數(shù),不要用延時函數(shù) sleep

# 定義時間顯示

self.timer = QtCore.QTimer(self)

self.timer.timeout.connect(self.act_displayTM) #綁定響應(yīng)函數(shù)

self.timer.setInterval(1000) #設(shè)置時間間隔

self.timer.start()

# 定時響應(yīng)事件對應(yīng)邏輯

def act_displayTM(self):

s_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

self.ui.label_Date.setText(s_time)

return

python3定時器

在實際應(yīng)用中,我們經(jīng)常需要使用定時器去觸發(fā)一些事件。Python中通過線程實現(xiàn)定時器timer,其使用非常簡單。看示例:

一秒后輸出 Hello Timer!

oneshot的定時器這樣就可以實現(xiàn)。

如果要實現(xiàn)cycle的定時器,則可以:

1s后定時器啟動后,將再次以5.5s為間隔周期性執(zhí)行回調(diào)fun_timer函數(shù)

結(jié)果是:

在使用Python定時器時需要注意:

1.定時器構(gòu)造函數(shù)主要有2個參數(shù),第一個參數(shù)為時間,第二個參數(shù)為函數(shù)名,第一個參數(shù)表示多長時間后調(diào)用后面第二個參數(shù)指明的函數(shù)。第二個參數(shù)注意是函數(shù)對象,進行參數(shù)傳遞,用函數(shù)名(如fun_timer)表示該對象,不能寫成函數(shù)執(zhí)行語句fun_timer(),不然會報錯。

2.定時器間隔單位是秒,可以是浮點數(shù),如5.5,0.02等,在執(zhí)行函數(shù)fun_timer內(nèi)部和外部中給的值可以不同。如上例中第一次執(zhí)行fun_timer是1秒后,后面的都是5.5秒后執(zhí)行。

3.可以使用cancel停止定時器的工作

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

1.計算生日是星期幾

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

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

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

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

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

birthday.weekday()

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

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

weekdays[birthday.weekday()]

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

2.定時任務(wù)

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

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

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

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

我們用platform這個模塊來判斷一下操作系統(tǒng)

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).如何定時執(zhí)行

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

now=datetime.datetime.now()

假設(shè)當前時間是2017-02-09 20:19:47.555000

b.然后我們輸入一個你要定時執(zhí)行的target時間

比如你是x分10秒的時候執(zhí)行sched_Timer=datetime.datetime(x,x,x,x,x,10)

前面的x是并不重要(只要最后是10秒就行了),我們就把目標時間設(shè)的比當前晚一點即可:

sched_Timer=datetime.datetime(2017,2,9,20,20,10)

c.好當時間到了20:20:10的時候要運行我們的程序

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

if now==sched_Timer:

'run Task'

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

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

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

然后外邊用個while 死循環(huán)hold住就可以了

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

python程序怎么使用定時器終止程序

#python 2.7

import time #導入 time類

start=time.clock()

def func(a,b):

while True:

end=time.clock ()

if int(end-start)==10:

print('Warning: Timeout!!'*5)

break

a=a+b

print a

func(1,2)

主要思路:開始時間-當前時間=10則停止運行并輸出時間到了(注意縮進)

當前題目:python函數(shù)定時器的簡單介紹
轉(zhuǎn)載來源:http://muchs.cn/article2/hjddoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、服務(wù)器托管、虛擬主機網(wǎng)站建設(shè)、網(wǎng)站設(shè)計公司、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)