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))