如何在不重叠字符串的情况下很好地回放可变长度字符串的输出



当字符串的长度发生变化时,如何打印有关脚本进度的简单信息,回车符,同时防止字符串重叠?请参阅此简单示例

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 将必要的空格添加到下一行,以便完全覆盖上一行。

str.ljust(width[, fillchar])

返回在 长度宽度的字符串。填充是使用指定的填充字符完成的 (默认值为 ASCII 空格)。如果宽度,则返回原始字符串 小于或等于镜头。

因此,您的代码将是:

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)

最新更新