首页 > 解决方案 > 在 Python 中覆盖以前打印的行

问题描述

我正在编写一个允许用户选择一个选项的包。IE。

print("What is your favourite singer?")
print("Sia")
print("> Rachel Platten")
print("Parade Of Lights")

在这种情况下,“Rachel Platten”被选为歌手,但是当用户按下“向上”键时,我想重写标准输出中的文本以将 Sia 显示为选定的歌手。

我怎样才能做到这一点?

谢谢

标签: python-3.xterminalcommand-line-interface

解决方案


所以,我找到了解决这个问题的方法。将 x 先前写入的行刷新/擦除到标准输出:

ERASE_LINE = "\x1b[2K"

for i in range(1, x):
    print(f"\x1b[{i}A{ERASE_LINE}")

推荐阅读