经过tim后重复过程

2024-09-28 01:33:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用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()

timedMessages()函数是在while循环中调用的,在while循环中,启动程序时,在time.time()处设置开始时间。出现此问题的原因是,我的本地开始时间在timeMessages函数中再次设置为本地变量。我不确定我是在逻辑上做错了,还是只是遗漏了一些小东西


Tags: 函数testiftimedef时间事件start
1条回答
网友
1楼 · 发布于 2024-09-28 01:33:46

最基本的解决办法是

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)

这个版本实际上每60秒运行一次,从睡眠中减去send_message()的执行时间,这样它就开始每60秒执行一次

如果你想要精确的计时,你就需要更先进的技术

相关问题 更多 >

    热门问题