Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 使用Idle在Python 3.3.2 Shell中实现退格_Python 3.x_Python Idle_Backspace - Fatal编程技术网

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

Python 3.x 使用Idle在Python 3.3.2 Shell中实现退格,python-3.x,python-idle,backspace,Python 3.x,Python Idle,Backspace,这里有几个人在寻找Python中的退格答案。我所搜索的问题中没有一个能为我解答这个问题,因此,下面是: 简单目标:能够在一行上打印状态字符串,其中下一个状态覆盖第一个状态。类似于%完成状态,其中不是滚动一个长的1%\n行,而是滚动2%。。。等等。我们只是用最新的值覆盖第一行 现在是问题。当我在空闲状态下键入时:print(“a\bc”)我将其作为输出:ac,它看起来像一个奇怪的框,在“a”和“c”之间有一个圆。使用sys.stdout.write()时也会发生同样的情况 这是空闲编辑器设置/问题

这里有几个人在寻找Python中的退格答案。我所搜索的问题中没有一个能为我解答这个问题,因此,下面是:

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

现在是问题。当我在空闲状态下键入时:
print(“a\bc”)
我将其作为输出:
ac
,它看起来像一个奇怪的框,在“a”和“c”之间有一个圆。使用
sys.stdout.write()时也会发生同样的情况

这是空闲编辑器设置/问题吗?有人知道我所尝试的在闲置的外壳中是否可行吗

谢谢你的洞察力

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

编辑:在Notepad++中复制输出表明Python正在打印一个“backspace”字符,而不是实际返回一个空格。也许我试图实现的目标是不可能的?

编辑:

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


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

这并不能以字面的方式回答您的问题,但我认为指出通常的接口与您描述的接口类似可能是有用的(例如,屏幕的一部分不断更新,没有换行符),它通常使用类似ncurses的库来实现


Python内置了一个curses库(),这或多或少可以实现您的最终目标。

当我尝试此操作时,我没有看到前面的文本被覆盖。我的输出是:0只精彩的鸡!1只精彩的鸡!2只精彩的鸡!3只精彩的鸡!4只精彩的鸡!5只精彩的鸡!6只精彩的鸡!7只精彩的鸡!8只精彩的鸡!9只精彩的chickens!这个答案让我觉得有些讽刺,尽管如此,甚至没有什么帮助。一点也不讽刺-可能只是Idle没有正确地呈现回车,因为它在Windows的
cmd
窗口中工作得很好。在交互式解释器中也是如此。根据@Nanomurf的评论,Idle似乎是shell实际上不会这样做。@CmdrMoozy-显然是被误导了。因为我实际上并没有费心打开Idle(因为我发现这很奇怪)并尝试一下我的代码。我希望这与代码所在的Tk文本控件的性质有关。我感谢您的反馈。我不应该在Python中偷懒,并坚持使用简单、舒适的空闲限制…谢谢您的2美分!您确定curses库在空闲时工作吗?还有,curses在MS Windows中工作吗?Python文档说“Python的Windows版本不包括curses模块。一个名为UniCourses的移植版本可用。”,所以应该可以让它工作。IDLE只是一个IDE,所以我不知道它与解释器的功能有什么关系。Curses希望它的输出转到一个真正的“终端”或终端模拟器程序,最有可能是一个响应VT100/ANSI的程序。IDLE的shell没有(目前)将这样的接口添加到tk/tkinter文本小部件中。您当前无法在空闲shell中获得所需的内容。因为像这样的问题,我正在考虑更改它。