在Python中,您可以使用\r
在同一行上打印,然后返回到行的开头。
这适用于进度条或增加百分比计数器,例如:Python print on same line
但是,当打印长度可能会减少的行时,会在前面的行中留下文本,例如:
import sys
for t in ['long line', '%']:
sys.stdout.write(t + '\r')
sys.stdout.write('\n')
将终端文本留作:%ong line
。
当打印到较长的一行时,打印到同一行的最佳方法是什么?
答案 0 :(得分:1)
与\r
一起,需要ansi-sequence \033[K
- 擦除到行尾。
此代码按预期工作。
import sys
for t in ['long line', '%']:
sys.stdout.write('\033[K' + t + '\r')
sys.stdout.write('\n')
答案 1 :(得分:0)
我认为最简单的方法是在字符上写空格。为此,编写需要多少空格才能覆盖最后一行是一个好主意。 例如:
previousLength = 0
for t in ["long line", "%"]:
print(" " * previousLength, end="\r")
print(t, end="\r")
previousLength = len(t)
print("\n")