Python 用另一指定行覆盖一行

Python overwrite a line with another specified line

如何用另一个特定的打印输出覆盖一个打印输出?例如:

print("Overwrite this line", end="\r")
print("I do not want to overwrite any line")
print("I want to overwrite the first line")

如何用 third 打印语句覆盖 first 打印语句? 我想用第三行替换第一行。第二行应该保持原样。

在此代码示例中,第一行将被 第二行 覆盖,但 我不想要那个 。我希望第一行被 third one

覆盖

您必须使用条件语句。 If 语句例如:

choice = input('what do you want to display? 1 or 2')

if choice == '1' then:
    print('I want to overwrite the first line')
else:
    print('I do not want to overwrite any line')

这是否回答了您的问题?如果不是,请详细说明。

为此使用 escape sequence \r。等待使用 time.sleep

import time

print("Overwrite this line", end="")
time.sleep(10)
print("\rI want to overwrite the first line")
print("I do not want to overwrite any line")

为了更精确的结果wait for key press查看此代码:

import msvcrt as m
def wait():
    m.getch()

print("Overwrite this line", end="")
wait()
print("\rI want to overwrite the first line")
print("I do not want to overwrite any line")

你可以使用ANSI escape sequences,只要你的终端支持它们([=27=是这样的,我不确定Windows)

这个问题特别有趣的是:

  • 3[<N>A - 将光标向上移动N行
  • 3[<N>B - 将光标向下移动N行

你可以正常打印前两行,然后第三行向上移动2行,打印它(这将打印一个换行符并将光标移动到第二行),向下移动1行并继续你的代码。我在代码中插入了一些延迟,以便效果可见:

print("Overwrite this line")
time.sleep(1)
print("I do not want to overwrite any line")
time.sleep(1)
print("3[2AI want to overwrite the first line3[1B")