Python 中实时时间计时器

0 投票
2 回答
3675 浏览
提问于 2025-04-17 19:14

我想在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)

撰写回答