运行时钟及触发器
我想要一个一直在运行的时钟,每隔5秒就触发一次其他的功能。
请给我一些建议,告诉我该怎么做。
非常感谢!
3 个回答
1
import time
while True:
time.sleep(5)
someFunction()
targetTime = time.time()
while True:
someFunction()
targetTime += 5
sleepTime = targetTime - time.time()
if sleepTime>0:
time.sleep(sleepTime)
正如gnibbler所说,这个时间间隔实际上是(5秒 + 执行someFunction所需的时间)。如果你希望它恰好是5秒:
1
你可以使用来自 sched 模块的调度器。
只需要让你安排好的函数在每次完成后自己重新安排一次就可以了。
4
在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。比如说,当你在使用一个特定的函数或者方法时,可能会发现它的表现和你预期的不一样。这种情况可能是因为你没有正确理解这个函数的用法,或者是它的参数设置不对。
另外,有些时候,错误信息也可能让人感到困惑。错误信息就像是程序在告诉你:“嘿,我遇到麻烦了!”但是这些信息有时候并不容易理解,尤其是对于刚开始学习编程的人来说。
所以,遇到问题时,首先要仔细阅读文档,看看这个函数的使用说明,确保你理解它的每一个参数和返回值。如果还是不明白,可以去网上查找相关的讨论或者问问其他人,通常会有人遇到过类似的问题。
总之,编程的过程中,遇到问题是很正常的,关键是要保持耐心,逐步解决它们。
>>> import sched, time
>>> s = sched.scheduler(time.time, time.sleep)
>>> def print_time():
... s.enter(5, 1, print_time, ())
... print "From print_time", time.time()
...
>>> s.enter(0, 1, print_time, ())
Event(time=1265846894.4069381, priority=1, action=<function print_time at 0xb7d1ab1c>, argument=())
>>> s.run()
From print_time 1265846894.41
From print_time 1265846899.41
From print_time 1265846904.42
From print_time 1265846909.42