首页 > 解决方案 > 如何删除python中的最后一个打印行?

问题描述

我正在尝试用python制作倒计时程序。我想把它变成它删除最后打印的行,所以我可以打印新的第二行。

import time

def countdown():
    minute = 60
    while minute >= 0:
        m, s = divmod(minute, 60)
        time_left = str(m).zfill(2) + ':' + str(s).zfill(2)
        print(time_left)
        time.sleep(1) 
        minute -= 1

countdown()

我在 Raspberry Pi 上运行 python 2.7.13。

标签: pythonpython-2.7timecountdown

解决方案


您可以直接写入stdout,而不是使用 print. 并且\r字符将转到行首,而不是下一行。

 import time
 import sys

 def countdown():
     minute = 60
     while minute >= 0:
         m, s = divmod(minute, 60)
         time_left = str(m).zfill(2) + ':' + str(s).zfill(2)
         sys.stdout.write("%s\r" % time_left)
         sys.stdout.flush()
         time.sleep(1) 
         minute -= 1

推荐阅读