我正在尝试制作一个从 60 秒开始的倒计时器。我唯一的问题是,当我运行该函数时,程序会打印如下代码:
60
59
58
...等
如何在不打印 60 行的情况下替换第一行中的 60 并将 59 放在原来的位置?
这是我的代码:
from __future__ import division
import sys, time
def countdown():
seconds = 60
while seconds >= 0:
print seconds
sys.stdout.flush()
time.sleep(1)
seconds -= 1
最佳答案
在 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
关于python - 如何使用\r (Python) 替换上一行中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25752932/