Python - 创建一个考虑执行时间的延迟
Python - creating a delay that takes in account the execution time
我正在编写一个函数,可以在一秒钟内从 bin 文件中读取 N (800*600) 帧。 FPS 是用户可控的
import time
def getFrame(file,N): #read N frames per second, 800X600 pixels each from file
start = time.time()
delay = (1/float(N))
while N:
frame = file.read(480000)
time.sleep(delay)
N -= 1
print time.time()-start
return
time.sleep() 会造成延迟,但不会考虑其余代码的执行时间。
所以总共 运行 时间总是大于 1 秒,并且随着我增加 N (fps) 值而增加。
有没有一种方法可以创建考虑处理时间的延迟?
嗯....你需要基础数学
time.sleep(delay-(time.time()-start))
我正在编写一个函数,可以在一秒钟内从 bin 文件中读取 N (800*600) 帧。 FPS 是用户可控的
import time
def getFrame(file,N): #read N frames per second, 800X600 pixels each from file
start = time.time()
delay = (1/float(N))
while N:
frame = file.read(480000)
time.sleep(delay)
N -= 1
print time.time()-start
return
time.sleep() 会造成延迟,但不会考虑其余代码的执行时间。 所以总共 运行 时间总是大于 1 秒,并且随着我增加 N (fps) 值而增加。
有没有一种方法可以创建考虑处理时间的延迟?
嗯....你需要基础数学
time.sleep(delay-(time.time()-start))