Python 中实时时间计时器
我想在Python中实时获取时间的倒计时。
我的想法是,我有一组函数需要反复执行,但我希望在每次执行之间有10分钟的间隔。例如:
现在我这样做:
lst = [1,2,3,4,5]
while lst:
do something
lst.pop(0)
time.sleep(600)
这样做会让程序等待10分钟,然后再循环执行。
我想实时打印出距离下次开始循环还有多少秒。
也就是说,我想打印:
等待600秒
等待500秒,依此类推。
最好是只改变数字,而不是每秒都打印一次“等待”这个词。
2 个回答
0
首先,我觉得你应该在一个单独的线程里做一个计时器,然后在另一个线程里执行“做某事”。要更新计时器的时间,你可以使用 Clock.tick。
0
你可以用这样的一个函数来打印倒计时:
>>> def countdown(seconds):
... while seconds:
... sys.stdout.write("\rsleeping for {0}".format(seconds))
... seconds -= 1
... time.sleep(1)
(这里的 \r
字符是一个回车符,不会换行——每次你执行输出文本的那一行时,它会覆盖之前的内容。)所以你的代码看起来会更像这样:
while lst:
# do something
lst.pop(0)
countdown(600)