如何使用 \r 替换前一行的字符串(Python)
我正在尝试制作一个从60秒开始的倒计时器。我的问题是,当我运行这个功能时,程序会像这样打印出代码:
60
59
58
...等等
我该如何替换第一行的60,把59放在它的位置,而不是打印出60行呢?
这是我的代码:
from __future__ import division
import sys, time
def countdown():
seconds = 60
while seconds >= 0:
print seconds
sys.stdout.flush()
time.sleep(1)
seconds -= 1
1 个回答
3
在你的 countdown
函数开始时打印一个空行。这会为 \r
的工作提供所需的空行。接下来,把 print seconds
的部分替换成
sys.stdout.write('\r \r')
sys.stdout.write(str(seconds))
第一行的作用是清除函数开始时打印的那个空行。第二行则是输出秒数。
代码如下:
def countdown():
seconds = 60
print ''
while seconds >= 0:
sys.stdout.write('\r \r')
sys.stdout.write(str(seconds))
sys.stdout.flush()
time.sleep(1)
seconds -= 1