Python nice回车如何在不重叠字符串的情况下返回可变长度字符串的输出?

Python nice回车如何在不重叠字符串的情况下返回可变长度字符串的输出?,python,carriage-return,Python,Carriage Return,当我想要改变字符串的长度时,如何使用回车符打印脚本进度的简单信息,同时防止字符串重叠?看看这个简单的例子 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) 您可以跟踪打印的最后一行的长度,并

当我想要改变字符串的长度时,如何使用回车符打印脚本进度的简单信息,同时防止字符串重叠?看看这个简单的例子

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)

您可以跟踪打印的最后一行的长度,并使用为下一行添加必要的空格,以便完全覆盖上一行

str.ljust(宽度[,填充字符])

返回左对齐的字符串 长宽字符串。填充是使用指定的fillchar完成的 (默认为ASCII空格)。如果是宽度,则返回原始字符串 小于或等于len(s)

因此,您的代码是:

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)