如何将输入保持在同一屏幕位置?

时间:2013-10-29 01:30:14

标签: python

我当前的输入法是for循环。我输入一个整数,它被添加到列表然后它转到下一个输入。每次出现时都会产生一条新线。我想将输入条目保留在同一位置。我是Python和编程的新手,所以我不知道从哪里开始。我的输入声明采用以下形式:

var= input(" message: ")

谢谢

2 个答案:

答案 0 :(得分:3)

如果您使用的是UNIX或Windows终端,可以添加一个ASCI转义符("\033[A")将光标向上移动一行以再次请求输入,如example here所示,通过这种方式,您可以通过"覆盖"将您的输入消息放在相同的位置。上一条输入消息。

答案 1 :(得分:2)

tl; dr:有一个原因,大多数简单的应用程序都没有这样做:它的工作量很大,而不是很多。

如果您正在谈论确保"message: "行始终显示在窗口中的同一位置,那么您无法使用普通input执行此操作:它不需要“行尾”参数,实际上换行在输入获取输入字符串之前发生。 (即用户点击RETURN时。)

可以做这件事,特别是如果你不关心Windows,使用getch模式,这基本上说终端将字符传递给你而不是整行,你需要决定如何解释它们。 getch package似乎可以在这里提供帮助,它甚至支持Windows!

另一种选择(当你需要的时候可能没有那么有效或核弹是一把手术刀)会使用类似诅咒或blessings'terminal.location能力的东西。我相信,祝福包含了ANSI逃逸字符。 (如the other answer中提到的这个问题,这可能是正确的方法。)