在实际应用中,我们经常需要使用定时器去触发一些事件。Python中通过线程实现定时器timer,其使用非常简单。看示例:
创新互联-专业网站定制、快速模板网站建设、高性价比临湘网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式临湘网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖临湘地区。费用合理售后完善,十多年实体公司更值得信赖。
一秒后输出 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停止定时器的工作
用定时器做,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
def a():
print('a')
def b():
print('b')
def c():
while True:
print('c')
time.sleep(3)
if __name__ == '__main__':
t = threading.Thread(target=c)
t.setDaemon(True)
t.start()
while True:
a()
b()
time.sleep(1)
python每隔N秒运行指定函数的方法
这篇文章主要介绍了python每隔N秒运行指定函数的方法,涉及Python的线程与时间操作技巧,非常具有实用价值,需要的朋友可以参考下
这是一个类似定时器的效果,每隔指定的秒数运行指定的函数,采用线程实现,代码简单实用。
代码如下:import os
import time
def print_ts(message):
print "[%s] %s"%(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), message)
def run(interval, command):
print_ts("-"*100)
print_ts("Command %s"%command)
print_ts("Starting every %s seconds."%interval)
print_ts("-"*100)
while True:
try:
# sleep for the remaining seconds of interval
time_remaining = interval-time.time()%interval
print_ts("Sleeping until %s (%s seconds)..."%((time.ctime(time.time()+time_remaining)), time_remaining))
time.sleep(time_remaining)
print_ts("Starting command.")
# execute the command
status = os.system(command)
print_ts("-"*100)
print_ts("Command status = %s."%status)
except Exception, e:
print e
if __name__=="__main__":
interval = 5
command = r"ipconfig"
run(interval, command)
希望本文所述对大家的Python程序设计有所帮助。