1

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

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

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

这是空闲编辑器设置/问题吗?有谁知道我在 Idle Shell 中是否可以尝试?

感谢您的任何见解。

PS:在 Windows 7、64 位系统上运行 Python 3.3.2 Idle。

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

4

2 回答 2

3

编辑:

显然,回车\r和退格\b实际上在 Idle 中不起作用,因为它使用的文本控件不能正确呈现回车/退格。

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

于 2013-10-04T19:04:04.773 回答
0

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

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

于 2013-10-04T19:27:12.953 回答