我如何在使用%操作符和datetime包的基础上每10秒打印一次时间?这只打印一次...
from datetime import datetime, timezone, timedelta
import time
now_utc = datetime.now(timezone.utc)
while True:
if (now_utc - datetime.now(timezone.utc)).total_seconds() % 10 == 0:
print(time.ctime())
2条答案
按热度按时间gc0ot86w1#
要每隔10秒打印一次时间,可以使用time模块中的sleep()函数将循环暂停所需的时间间隔。
rkue9o1l2#
在答复关于这个问题的评论时:你可以不用
datetime
和%
来完成这个任务,好处是它要简单得多。此脚本从Unix epoch获取秒数,并每10秒打印一次当前时间。您可以调整轮询周期以最小化旋转,并确保仅每10秒打印一次时间,而不是每11秒、12秒等打印一次,因为分辨率较差。
请注意,由于
time.sleep()
的不准确性,该脚本容易发生漂移,最终打印的时间将比上次打印时间长10秒。在低负载的系统上运行一些实验之后,如果根据前一时间和当前时间之间的差异调整睡眠时间,
time.sleep()
在几个小时内的性能非常好。这实际上取决于它需要有多精确,它要运行多长时间,以及它将在哪个系统上运行。