如何解决如何在控制台中删除输入问题?
我想用新的输出覆盖输入。我想做同样的事情(https://stackoverflow.com/a/8436827/14079038),但是我需要覆盖输入。
我的代码返回:
while not addIp.__eq__(''):
ignoredIp.append(addIp)
print(addIp)
addIp = input('Would you like to add ip ? (None = no): ')
Would you like to add ip ? (None = no): 1.1.1.1
1.1.1.1
Would you like to add ip ? (None = no): 1.1.1.2
1.1.1.2
Would you like to add ip ? (None = no):
但是我想要这样的东西:
10.11.100.66
10.11.100.67
10.11.100.68
10.11.100.69
10.11.100.70
Would you like to add ip ? (None = no):
解决方法
如果您在同一行中书写,请在end='\r'
中使用print()
,它将不会移至下一行。
但是它不能与input()
一起使用,后者将\n
发送到控制台/终端,您无法停止它。也许如果您使用curses之类的模块,可以在某些控制台/终端中使用特殊代码将光标移动到任何位置,那么您可以返回上一行。
在Linux终端上,您可以使用代码\033[nA
向上移动n
行。
通过这种方式,您可以使用\033[1A
移至上一行并在问题处打印文本。
在末尾还需要一些空格来删除文本。
addIp = '?'
while addIp:
addIp = input('Would you like to add ip ? (None = no): ')
print('\033[1A' + addIp + ' '*40)
请参见other codes。 Linux使用类似的代码为文本着色。
还有一些模块可与Windows,Linux和
一起使用,它们用于在文本模式(TUI
-文本用户界面)中绘制窗口小部件
并非所有的控制台/终端都可以遵守这些代码-IDE /编辑器中的控制台通常不遵守这些代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。