我想以精确的时间间隔(大约 15 秒)运行一段代码
最初我使用 time.sleep(),但问题是代码需要一秒钟左右才能运行,所以它会不同步。

我写了这个,我觉得它不整洁,因为我不喜欢使用 while 循环。有没有更好的办法?

import datetime as dt 
import numpy as np 
 
iterations = 100 
tstep = dt.timedelta(seconds=5) 
for i in np.arange(iterations): 
    startTime = dt.datetime.now() 
    myfunction(doesloadsofcoolthings) 
    while dt.datetime.now() < startTime + tstep: 
        1==1 

请您参考如下方法:

理想情况下,人们会使用线程来实现这一点。你可以做类似的事情

import threading 
interval = 15 
 
def myPeriodicFunction(): 
    print "This loops on a timer every %d seconds" % interval 
 
def startTimer(): 
    threading.Timer(interval, startTimer).start() 
    myPeriodicFunction() 

然后你可以打电话
startTimer() 

以启动循环计时器。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!