Python:如何将代码的执行时间延长到1秒

时间:2016-12-02 01:48:35

标签: python time

我正在python中编写一个倒计时时钟,但看起来时间模块只下降到第二个。有没有办法让我准确确定何时经过1秒?

似乎我的问题有点令人困惑,让我澄清一下。我需要运行一些代码,然后,最后,程序进入while循环并退出一次,自代码开始运行以来至少已经过了1000毫秒

3 个答案:

答案 0 :(得分:1)

这是一种可行的方法,但我不确定您只限于哪些模块。

import time

def procedure:
    time.sleep(2.5)

# measure wall time
t0 = time.time()
procedure()
print time.time() - t0, "seconds wall time"

2.50023603439秒时间

其中procedure是对您正在计时的函数的引用。

答案 1 :(得分:1)

如果知道您要运行的代码将花费不到1秒,那么1 - elapsed time将为您提供剩余的睡眠时间,不需要while循环。

now = time.time()
foo()
time.sleep(1 - (time.time() - now))

算术会有一些开销,但它在1/100秒内,并且严格地大于1秒,如您所要求的那样。我运行了以下代码:

import time
import random

def foo():
    time.sleep(random.random())

now = time.time()
foo()
time.sleep(1 - (time.time() - now))

print "Time elapsed: {}".format(time.time() - now)

输出:

Time elapsed: 1.00379300117

无论foo花费多长时间,您都可以多次运行以验证它是否提供了您想要的输出。

除非花费的时间超过1秒,否则睡眠时间将为负,这将导致IOError。您需要检查该案例。

或者,如果您需要在1秒后终止该功能,请检查this question

答案 2 :(得分:0)

默认情况下,time模块会为您提供10 ^ -5秒的时间

import time
time.time()
>>> 1480643510.89443