python函数定时器的简单介绍

如何用Python写一个每天的定时程序

a.我们先获取当前的时间

10年积累的成都做网站、成都网站制作、成都外贸网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有吉木乃免费网站建设让你可以放心的选择与我们合作。

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

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的类来做事呢,其实不然,你可以写个函数调用的TimerFunc类:

1 class TimerFunc(BaseTimer): 2 """可传递任何函数的定时任务类""" 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() #调用函数 9 10 #使用方法: 11 def doing(): 12 print("Hello") 13 14 w = TimerFunc(doing) 15 w.start()

输出:"Hello",并且会每隔1秒执行一次

是不是觉得可以做一堆事情了?你可以自由发挥,继承BaseTimer类

1 w = TimerFunc(doing,5,False) #这样就可以定义延迟5秒使用了~ 2 w.start()

python怎么用延时函数,python小白求求帮忙(哭)

用定时器做,1秒钟唤醒一次响应函数,不要用延时函数 sleep

# 定义时间显示

self.timer = QtCore.QTimer(self)

self.timer.timeout.connect(self.act_displayTM) #绑定响应函数

self.timer.setInterval(1000) #设置时间间隔

self.timer.start()

# 定时响应事件对应逻辑

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定时器

在实际应用中,我们经常需要使用定时器去触发一些事件。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停止定时器的工作

如何用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程序怎么使用定时器终止程序

#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函数定时器的简单介绍
文章出自:http://cdiso.cn/article/hjddoc.html

其他资讯