我有以下代码:删除最后输入行Python中
num = int(raw_input("input number: "))
print "\b" * 20
控制台输出看起来像
input number: 10
我想删除文本input number: 10
用户按下ENTER
后。退格键\b
不能这样做。
我有以下代码:删除最后输入行Python中
num = int(raw_input("input number: "))
print "\b" * 20
控制台输出看起来像
input number: 10
我想删除文本input number: 10
用户按下ENTER
后。退格键\b
不能这样做。
这将在大多数UNIX和Windows终端工作...它使用非常简单的ANSI逃生。
num = int(raw_input("input number: "))
print "\033[A \033[A" # ansi escape arrow up then overwrite the line
请注意,在Windows上,你可能需要使用启用ANSI支持以下 http://www.windowsnetworking.com/kbase/windowstips/windows2000/usertips/miscellaneous/commandinterpreteransisupport.html
“\ 033 [A”字符串由终端解释为移动光标一行。
有对“背单词”控制序列和“行回”等,其举措光标。因此,您可以尝试将光标移回到要删除的文本的开头,并用空格覆盖它。但这很快就会变得复杂。谢天谢地,Python的“高级终端处理”标准为curses module。
与此唯一的问题是,它目前不是跨平台 - 该模块从未被移植到Windows。因此,如果您需要支持Windows,请查看Console module。
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 , "]"
你在哪个操作系统下工作? –
@MariaZverina Ubuntu 12.04 – xralf