我在Debian Wheezy上使用IDLE(Python 2.7)。我提出了问题here和here。我尝试应用他们说的话,我得到了一些奇怪的结果。如果我在Python shell中打印回车符或退格键,而不是实际获取那些,我会得到bs
和cr
的方块。我无法在这里展示它们,因为它们无法复制。
如何获得实际的回车? 这是我的代码,基于我上面提到的问题:
sys.stdout.write("Extracted: %d% Skipped %d% \r" % (len(f),len(skipped)))
sys.stdout.flush()
答案 0 :(得分:1)
终端处理这些特殊字符的能力各不相同。 was answered的类似问题Wayne Werner,他说IDLE只是不处理那些特殊字符(即打印一个替代字符,而不是移动光标或删除。),这可能是好的原因。
如Wayne所提到的那样,如果没有编写补丁,您可能会发现在本机终端中运行程序确实可以正常工作。 (即python path/to/your/program
)。
如果您希望程序了解它的环境(如评论中所述),则可以(也许最简单)创建一个在程序中手动设置的命令行开关&# 39;执行。如果从快捷方式或其他程序(可能是批处理文件)启动,则可以通过将其合并到预先编写的命令中来自动执行该过程。
这样的开关看起来像:
python path/to/your/program --terminal //For a full terminal
python path/to/your/program --IDLE //For IDLE
在阅读Terry Jan Reedy的评论之后,我要指出他对tkinter的指导(以及这种情况的一般方面)实际上可能是最有帮助的解决问题的方法。检查those comments。