我正在用python写一个倒计时时钟,但它看起来像时间模块只能下到第二个。有没有办法让我准确确定何时完成了1秒?Python:如何将代码的执行时间延长到1秒
似乎我的问题有点令人困惑,让我澄清。我需要运行一些代码,然后程序进入一个while循环,一旦代码开始运行至少1000毫秒后退出
我正在用python写一个倒计时时钟,但它看起来像时间模块只能下到第二个。有没有办法让我准确确定何时完成了1秒?Python:如何将代码的执行时间延长到1秒
似乎我的问题有点令人困惑,让我澄清。我需要运行一些代码,然后程序进入一个while循环,一旦代码开始运行至少1000毫秒后退出
如果您知道要运行需要不到1秒的代码,然后1 - elapsed time
会给你剩下的时间睡觉,不需要while
循环。
now = time.time()
foo()
time.sleep(1 - (time.time() - now))
算术会有一些开销,但它在一秒之内,并且严格大于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
谢谢!正是我需要的! – user3246167
默认情况下,time
模块为您提供时间10^-5秒
import time
time.time()
>>> 1480643510.89443
这里是一个办法,将工作,但林不知道哪个模块你是有限的。
import time
def procedure:
time.sleep(2.5)
# measure wall time
t0 = time.time()
procedure()
print time.time() - t0, "seconds wall time"
2.50023603439秒壁时间
其中程序是您正在计时功能的引用。
你尝试datetime模块?具体检查timedelta对象 – miraculixx
[Timer](https://docs.python.org/3/library/threading.html#timer-objects)对象。 –
由于我需要运行一些代码,然后等待第二秒的剩余时间过去,计时器并不会真正为我所做的工作。我不想等一秒钟,然后运行代码,因为那么它将关闭 – user3246167