我试图在python中经常重复一个事件(不管多长时间,比如60秒),但我遇到了麻烦。这就是我所拥有的,它应该起作用(我想),但它不是:
def timedMessages():
time_elapsed = time.time() - start_time
if time_elapsed > 60:
sendMessage("test")
start_time = time.time()
time_elapsed = 0
else:
time_elapsed = time.time() - start_time
start_time = time.time()
在while循环中调用timedMessages()函数,其中当启动程序时,time和start_time设置为time.time()。出现此问题是因为我的本地start_time在timeMessages函数内再次设置为局部变量。我不确定我是否在逻辑上做错了,或者我只是遗漏了一些小事。
答案 0 :(得分:0)
最基本的解决方案就像是
while True:
send_message()
time.sleep(60)
如果send_message()
需要一段时间并且您想要更准确的计时,您可以执行类似
while True:
start_time = time.time()
send_message()
elapsed_time = time.time() - start_time
time.sleep(60 - elapsed_time)
该版本试图通过从睡眠中减去send_message()
的执行时间每60秒实际运行一次,以便开始每60秒执行一次。
如果您想要非常精确的计时,那么您将需要更先进的技术。