删除Python中的最后一个输入行

删除Python中的最后一个输入行,python,input,console,Python,Input,Console,我有以下代码: num = int(raw_input("input number: ")) print "\b" * 20 控制台输出如下所示 input number: 10 我想在用户按下ENTER后删除文本input number:10。退格键\b无法执行此操作。您可以使用操作系统模块 import os os.system('clear') “cls”和“clear”是清除终端(即DOS提示符或终端窗口)的命令 对于空闲:您最好将屏幕向下滚动许多行,例如: print "\n"

我有以下代码:

num = int(raw_input("input number: "))
print "\b" * 20
控制台输出如下所示

input number: 10
我想在用户按下
ENTER
后删除文本
input number:10
。退格键
\b
无法执行此操作。

您可以使用操作系统模块

import os
os.system('clear')
“cls”和“clear”是清除终端(即DOS提示符或终端窗口)的命令

对于空闲:您最好将屏幕向下滚动许多行,例如:

print "\n" * 100

有“word back”和“line back”等移动光标的控制序列。因此,您可以尝试将光标移回要删除的文本的开头,并用空格覆盖它。但这很快就会变得复杂。谢天谢地,Python有“高级终端处理”的标准


唯一的问题是它目前还没有跨平台——该模块从未被移植到Windows。因此,如果您需要支持Windows,请查看

这将适用于大多数unix和windows终端。。。它使用非常简单的ANSI转义

num = int(raw_input("input number: "))
print "\033[A                             \033[A"    # ansi escape arrow up then overwrite the line
请注意,在Windows上,您可能需要使用以下命令启用ANSI支持


“\033[A”字符串被终端解释为将光标向上移动一行。

您在哪个操作系统下工作?我尝试了您的代码,但该行仍在那里(例如,当我输入数字10时),它看起来如下:“输入数字:0”“完成”光标在它下面。字符串末尾是否有足够的空格?请注意,在我的行末尾有大量空格。因此1被删除,而0没有被删除?是的,我知道您已经覆盖了文本,但我想删除整个文本“input number:X”,并将光标移到“input”(应该已经被删除)前面下面的字符串“\033[A”表示将光标对齐一行。您是否知道
curses
模块中的哪些函数会有用?@xraf您将希望通过调用
curses.initscr()来创建
window
对象
,并使用窗口方法进行I/O操作,而不是使用
打印
原始输入
。然后,当您要删除整行时,需要确保光标位于该行的某个位置,并在窗口上调用
.deleteln()
。我知道此命令,但我只想删除文本“input number:X”因为上面的文字不应该删除。为什么要删除它…你的确切要求是什么?我正在以交互方式循环阅读,不想在终端上有太多的文字。解释整个上下文需要很长时间,离题。
import sys

print "Welcome to a humble little screen control demo program"
print ""

# Clear the screen
#screen_code = "\033[2J";
#sys.stdout.write( screen_code )

# Go up to the previous line and then
# clear to the end of line
screen_code = "\033[1A[\033[2K"
sys.stdout.write( screen_code )
a = raw_input( "What a: " )
a = a.strip()
sys.stdout.write( screen_code )
b = raw_input( "What b: " )
b = b.strip()
print "a=[" , a , "]"
print "b=[" , b , "]"