gpt4 book ai didi

python - 如何在控制台中删除输入问题?

转载 作者:行者123 更新时间:2023-12-04 09:10:55 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Output to the same line overwriting previous output?

(9 个回答)



Possible to get user input without inserting a new line?

(9 个回答)


1年前关闭。




我想用新的输出覆盖输入。我想做同样的事情( 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、
  • curses
  • npyscreen
  • urwid

  • 它们用于在文本模式下绘制小部件( TUI - 文本用户界面)

    并非所有控制台/终端都可以尊重这些代码 - 通常 IDE/编辑器中的控制台不尊重这些代码。

    关于python - 如何在控制台中删除输入问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63353362/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com