在python stdou中的倒计时期间更新文本

2024-06-06 23:17:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我在其他地方做过一些研究,但似乎什么都不对劲。我已经让计数器大部分工作,但当它从10到9和以下,它留下了一个零散的后面,所以他们显示为90,80,70等

我目前有:

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

Tags: 地方stdout计数器writeflushrremaining
2条回答

这是因为覆盖了行的内容,当从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)

将输出设置为固定长度,以便端到端地“替换”自身

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

相关问题 更多 >