删除Python中的最后一个输入行(Delete the last input row in Pyt

2019-06-25 00:24发布

我有以下代码:

num = int(raw_input("input number: "))
print "\b" * 20

控制台输出看起来像

input number: 10

我想删除的文字input number: 10在用户按下ENTER 。 退格键\b不能做到这一点。

Answer 1:

这在大多数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”的字符串是由终端解释为移动光标一行。



Answer 2:

有关于“背单词”和“行回”和移动光标等控制序列。 所以,你可以尝试移动光标还给你要删除的文本的开始,并用空格覆盖它。 但是,这变得复杂,速度非常快。 值得庆幸的是,Python有标准的诅咒模块为“先进终端处理”。

与此唯一的问题是,它是不是在目前的跨平台 - 该模块从未被移植到Windows。 所以,如果你需要支持Windows,看看该控制台模块 。



Answer 3:

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 , "]"


Answer 4:

您可以使用os模块

import os
os.system('clear')

的“CLS”和“清除”是其中将清除的终端(即,DOS提示符或终端窗口)的命令。

空闲:你可以做的最好的是滚动屏幕向下地段线路,例如:

print "\n" * 100


文章来源: Delete the last input row in Python