Python:如何在终端显示计时器

10 投票
1 回答
18881 浏览
提问于 2025-04-16 16:48

我刚开始学习Python编程,并且是在Ubuntu系统上进行的。在我写的一个程序里,我设置了1分钟的延迟,直到代码再次执行。我想知道怎么在终端上显示一个计时器,显示这个延迟的时间。谢谢!

1 个回答

25

最简单的方法如下。

import time
import sys

for remaining in range(10, 0, -1):
    sys.stdout.write("\r")
    sys.stdout.write("{:2d} seconds remaining.".format(remaining)) 
    sys.stdout.flush()
    time.sleep(1)

sys.stdout.write("\rComplete!            \n")

"\r"的作用是把文本光标移到行的开头,这样你就可以覆盖之前写的内容。因为通常输出不会在换行符("\n")之前显示,所以你需要手动调用.flush()来刷新输出流。

由于这一行并没有被清空,我们需要确保每次输出的新行足够长,以覆盖掉已有的内容。

curses模块提供了更高级的终端输出工具,但使用起来会复杂一些。

撰写回答