如何在打印状态时刷新整行

  • 本文关键字:刷新 状态 打印 python
  • 更新时间 :
  • 英文 :


我有一个这样的代码:

import time
print("some previous print", end='r', flush=True)
for i in range(10):
print("progress " + str(i), end='r', flush=True)
time.sleep(1)

结果类似于progress 9ous print,所以它只是按长度剪切之前的打印。

我可以用end=' r'这样的东西来延长长度,但不是理想和灵活的解决方案。有什么想法吗?

要解决:

  • 在输出字符串之前准备一个额外的回车(CR或r(
  • 并确保之前打印的所有字符都被重写(如有必要,请使用空格(:
import time
print("About to start shortly.", end='r', flush=True)
time.sleep(3)
print(" "*50, end='r', flush=True) # overwritting a length of 50 with space
for i in range(10):
print(f"rprogress {i:2}", end='r', flush=True)  # prefixed with CR, f-string right-aligned
time.sleep(1)

注意:状态行的宽度恒定为11(数字保留9+2位,右对齐(。

最新更新