我有以下代码:
num = int(raw_input("input number: "))
print "\b" * 20
控制台输出看起来像
input number: 10
我想删除的文字input number: 10
在用户按下ENTER
。 退格键\b
不能做到这一点。
我有以下代码:
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有标准的诅咒模块为“先进终端处理”。
与此唯一的问题是,它是不是在目前的跨平台 - 该模块从未被移植到Windows。 所以,如果你需要支持Windows,看看该控制台模块 。
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 , "]"
您可以使用os模块
import os
os.system('clear')
的“CLS”和“清除”是其中将清除的终端(即,DOS提示符或终端窗口)的命令。
空闲:你可以做的最好的是滚动屏幕向下地段线路,例如:
print "\n" * 100