我有以下代码:
num = int(raw_input("input number: "))
print "\b" * 20
控制台输出类似于
input number: 10
我想在用户按下input number: 10
后删除文字ENTER
。退格键\b
无法执行此操作。
答案 0 :(得分:6)
这适用于大多数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 [字符串由终端解释为将光标移动一行。
答案 1 :(得分:1)
有用于移动光标的“单词后退”和“后退”等控制序列。因此,您可以尝试将光标移回要删除的文本的开头,并用空格覆盖它。但这很快就变得复杂了。值得庆幸的是,Python具有用于“高级终端处理”的标准curses module。
唯一的问题是它目前不是跨平台的 - 该模块从未被移植到Windows。因此,如果您需要支持Windows,请查看Console module。
答案 2 :(得分:0)
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 , "]"
答案 3 :(得分:-2)
您可以使用os模块
import os
os.system('clear')
“cls”和“clear”是清除终端的命令(即DOS提示符或终端窗口)。
对于IDLE:你能做的最好的事情就是将屏幕向下滚动很多行,例如:
print "\n" * 100