在python标准输出中倒计时期间更新文本

时间:2016-02-13 23:42:34

标签: python

我在其他地方做了一些研究,似乎没有什么工作正常。我的计数器大部分都在工作,但当它从10点到9点以下时,它会留下一个0流,所以它们显示为90,80,70等。

我目前有:

stdout.write("\rRemaining: %r"%r)
stdout.flush()

2 个答案:

答案 0 :(得分:1)

那是因为你覆盖了这一行的内容,当你从10传递到9时,你减少了1个字符。如果您不想看到上一个文本,则需要打印一个与前一个文本长度相同(或更长)的新行。

以下是如何操作的示例:

import time
from sys import stdout
n = 10
while n > 0:
    stdout.write('\rValue: %s' % str(n).rjust(2))
    stdout.flush()
    n -= 1
    time.sleep(1)

答案 1 :(得分:0)

使输出固定长度,以便"替换"本身端到端

stdout.write( "\rRemaining: {0: 3d}".format( int( r ) ) )  # assumed 100..0