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

时间:2013-10-04 17:57:05

标签: python-3.x python-idle backspace

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

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

现在问题。当我在空闲时输入此内容:print("a\bc")我将其作为输出:ac,看起来像一个奇怪的方框,在'一个'和'c'。使用sys.stdout.write()时会发生同样的事情。

这是空闲编辑器设置/问题吗?有没有人知道我在Idle Shell中尝试的是什么?

感谢您的任何见解。

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

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

2 个答案:

答案 0 :(得分:3)

修改

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

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

答案 1 :(得分:0)

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

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