【发布时间】:2022-01-25 01:28:57
【问题描述】:
我已经编写了这段代码,我希望该代码能够在瞬间准确运行。但是,每次迭代都需要几毫秒,这会导致我的程序出现一点延迟。有没有一种方法可以像减去秒一样减去这些毫秒。
import pandas as pd
import datetime as dt
import time
while True:
now = dt.datetime.now()
current_time = now.strftime('%Y-%m-%d %H:%M:%S')
seconds = int(current_time[-2:])
sleep_sec = 60 - seconds
time.sleep(sleep_sec)
print(dt.datetime.now())
这是输出:
从输出中可以看出,每次迭代都会增加几毫秒的时间。我想要的是打印毫秒也为零的确切分钟。
【问题讨论】:
-
你基本上不能,因为你不是唯一使用计算机的进程
-
@MadPhysicist 我可以像减去秒一样减去这些毫秒吗??
-
否,因为您对睡眠结束时间的控制没有足够的分辨率。时钟有足够的分辨率,但你不能保证你的进程有一个时间段,除非你把它的好数字改成一些荒谬的东西,此时你几乎冻结了系统。