经过一段时间后重复过程

时间:2018-01-05 19:50:43

标签: python elapsedtime

我试图在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函数内再次设置为局部变量。我不确定我是否在逻辑上做错了,或者我只是遗漏了一些小事。

1 个答案:

答案 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秒执行一次。

如果您想要非常精确的计时,那么您将需要更先进的技术。