我有一个这样的代码:
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位,右对齐(。