Python 在用户使用input()输入文本后从控制台中删除提示

Python 在用户使用input()输入文本后从控制台中删除提示,python,Python,是否可以删除用户在使用输入时键入的提示和文本?我在Windows10上使用cmd,我更喜欢一个跨平台的解决方案,但我并不介意 第一次尝试 使用代码: user_input = input("Enter some text: ") print("You just entered " + user_input) 产生: Enter some text: hello You just entered hello 但我想: Enter some text: hello 然后: You just e

是否可以删除用户在使用输入时键入的提示和文本?我在Windows10上使用cmd,我更喜欢一个跨平台的解决方案,但我并不介意

第一次尝试 使用代码:

user_input = input("Enter some text: ")
print("You just entered " + user_input)
产生:

Enter some text: hello
You just entered hello
但我想:

Enter some text: hello
然后:

You just entered hello
第二次尝试 我使用了getpass模块,但是它隐藏了用户输入的内容,因为它是为密码设计的。我查看了getpass2的代码,发现它使用了msvcrt中的getch函数。我尝试使用类似的方法,但没有成功。此代码:

import msvcrt
prompt = "Enter some text: "
user_input = ""
print(prompt, end="\r")
current_character = ""
while current_character != "\r":
    current_character = msvcrt.getch()
    user_input += str(current_character, "utf8")
    print(prompt + user_input, end="\r")
print("You entered" + user_input)
生成此输出:

Enter some text: h e l l o
然后当我按enter键时:

 nter some text: h e l l o
它还允许用户使用退格键删除提示

第三次尝试 我知道我可以使用os.systemcls清除控制台中的所有内容,但这会删除以前控制台中的文本。例如,此代码:

import os
print("foo")
user_input = input("Enter some text: ")
os.system("cls")
print("You just entered " + user_input)

删除输入之前打印到控制台的foo。如果我的问题不能直接解决,是否有一种变通方法可以将控制台中的文本保存到变量中,然后在用户输入后清除控制台并重新打印控制台中的文本?

这肯定不是最佳解决方案; 但是,作为回应,

是否有一种解决方法可以将控制台中的文本保存到 变数

,您可以继续将所需的文本追加到变量,并按照建议每次重新打印该文本。同样,我不建议您将其作为实际实现,但在我们等待有人提供正确的方法时

import os

to_print = ""
to_print += "foo" + "\n"
print(to_print)

user_input = input("Enter some text: ")
os.system("cls")

to_print += "You just entered " + user_input + "\n"
print(to_print)

@mij哪个答案只解决清除cmd输出中的特定行?