当我想改变长度的字符串时,如何在输出字符串的同时返回简单的脚本进度信息,同时又防止字符串重叠?看到这个简单的例子
import sys
import time
fewds = ["raspberry", "orange", "pineapple", "fig", "honeysuckle"]
for f in fewds:
sys.stdout.write(f+"\r")
sys.stdout.flush()
time.sleep(0.5)
答案 0 :(得分:2)
您可以跟踪打印的最后一行的长度,并使用str.ljust向下一行添加必要的空格,以完全覆盖上一行。
str.ljust(width [,fillchar])
返回左对齐的字符串 长度宽度的字符串。使用指定的fillchar完成填充 (默认为ASCII空间)。如果宽度返回原始字符串 小于或等于len。
因此,您的代码应为:
import sys
import time
fewds = ["raspberry", "orange", "pineapple", "fig", "honeysuckle"]
last_length = 0
for f in fewds:
sys.stdout.write(f.ljust(last_length) + "\r")
sys.stdout.flush()
time.sleep(0.5)
last_length = len(f)