如何在循环中每隔 x 秒 运行 计时一次而不停止循环?

How to run timer every x seconds within a loop without stalling the loop?

i = 0
start = datetime.now()
while True:
    myFunction()
    i += 1
    print('Elapsed: ' + str(datetime.now()-start) + ' | Iteration #' + str(i))

我想每 10 秒打印一次计时器信息,而不是在循环的每次迭代中打印一次,但实际上并没有停止循环本身,因此 myFunction() 仍然会执行它需要执行的操作(并且i 计数器随后增加)无需等待 10 秒。

使用datetime.timedelta检查时间是否足够:

import datetime

i = 0
start = datetime.datetime.now()
last = start

while True:
    my_function()
    i += 1
    now = datetime.datetime.now()
    if now - last > datetime.timedelta(seconds=10):
        last = now
        print('Elapsed: ' + str(now-start) + ' | Iteration #' + str(i))