在python中精确地使用sleep()不到一秒钟

在python中精确地使用sleep()不到一秒钟,python,Python,如何在python中准确地暂停一段时间 我试过: import time time.sleep(amount) (数量=小于1秒的时间长度) 然而这不是很准确,还有更好的吗 (windows 10,64位)睡眠永远不会比操作系统的滴答声频率更准确,对于windows,它在10ms-16ms范围内,而在linux中,它可以低至1ms,具体取决于操作系统,但通常会像windows一样高 如果你想要一个更高精度的睡眠,如果你在Linux上,你可以考虑使用 NoSoLeEp()/,这是一个高精度的睡眠

如何在python中准确地暂停一段时间

我试过:

import time
time.sleep(amount)
(数量=小于1秒的时间长度)

然而这不是很准确,还有更好的吗


(windows 10,64位)

睡眠永远不会比操作系统的滴答声频率更准确,对于windows,它在10ms-16ms范围内,而在linux中,它可以低至1ms,具体取决于操作系统,但通常会像windows一样高

如果你想要一个更高精度的睡眠,如果你在Linux上,你可以考虑使用<代码> NoSoLeEp()/<代码>,这是一个高精度的睡眠函数,不幸的是,Python并没有在任何内置的库中暴露出来,所以你需要创建一个小的.so文件,将其公开给Python。(通过使用ctypes按原样导入它,或者通过使用cpython创建一个C python模块)根据文档,此函数将与计时器本身一样精确

也有针对windows的高精度解决方案,但我从未使用过其中任何一种,因此我没有资格推荐在windows上使用什么(但同样,您需要一个.dll,将此类方法公开给python)

综上所述,如果你不在乎用电量,你可以做一个忙碌的睡眠:

import time
def busy_sleep(seconds_to_sleep):
    start = time.time()
    while (time.time() < start + seconds_to_sleep):
        pass
导入时间
def忙睡眠(秒到睡眠):
开始=时间。时间()
while(time.time()<开始+秒到睡眠):
通过
然后你可以这样叫它“忙碌的睡眠”(0.005),它将“睡眠”几乎精确到0.005秒“睡眠”因为你没有真正睡觉,所以cpu一直都在100%忙,但是如果对你来说重要的是以精确的方式延迟执行,那么它仍然可以对你工作

你试过吗? 如果我用时间睡觉,它会等一秒钟。 所以


诸如此类。如果这没有按您想要的方式回答您的问题,我很抱歉!

请说明您需要什么样的精度。准确程度如何?我认为这取决于操作系统,
vxworks
可能满足您的要求,如果您如此关心的是准确而不是面向消费者的操作系统。我只是想知道是否有更准确的方法来实现这一点。@jack-可能是,但这取决于您的操作系统。您使用的是哪个操作系统?可能与的重复
time.sleep(0.33333333333) 
# a third of a second pause.#
time.sleep(0.5)
# a half of a second pause.#