使用Idle在Python 3.3.2 Shell中实现退格

Implementing a backspace in Python 3.3.2 Shell using Idle

这里有几个人在Python中寻找退格答案。我搜索过的所有问题都没有为我解答,所以这里有:

简单目标:能够在一行上打印出状态字符串,其中下一个状态将覆盖第一个状态。类似于%完成状态,而不是滚动长线1% n,2%,...等等,我们只是用最新值覆盖第一行。

现在的问题。当我在空闲时键入它:print("a\bc")我得到它作为输出:ac看起来像一个奇怪的盒子,在'a'和'c'之间有一个圆圈。使用sys.stdout.write()时会发生同样的事情。

这是空闲编辑器设置/问题吗?有人甚至知道我在Idle Shell中尝试的是否可行?

感谢您的任何见解。

PS:在Windows 7,64位系统上运行Python 3.3.2空闲。

编辑:在Notepad ++中复制输出显示Python正在打印出一个"退格"字符,而不是实际返回空格。也许我想要完成的是不可能的?


编辑:

显然,回车符
和退格\b实际上不会在空闲状态下工作,因为它使用的文本控件不能正确呈现返回/退格。

您可以为Idle编写某种补丁,但它可能比它的价值更麻烦(除非你真的喜欢闲置)


这并没有以文字的方式回答你的问题,但我认为指出通常是你所描述的界面(例如,屏幕的一部分不断更新,没有换行)的界面可能是有用的, 通常使用像ncurses这样的库来实现。

Python内置了一个curses库(http://docs.python.org/3.3/library/curses.html),它可以或多或少地实现你的最终目标。