我有一个基于Python的应用程序,可以在简单的read-eval-print-loop中接受一些命令。我使用raw_input('> ')
来获得输入。在基于Unix的系统上,我也使用import readline
来使事情表现得更好一些。所有这些工作正常。如何实现很好地处理异步输出的python REPL?
问题是,有异步事件进来,我想打印输出一旦发生。不幸的是,这使得事情看起来很丑。输出后“>”字符串不再显示,并且如果用户在输入内容的一半时,则会将其文本删减一半。它应该在打印某些内容后重新绘制用户的正在进行的文本。
这似乎是它必须解决的问题。什么是正确的方法来做到这一点?
另请注意,我的一些用户是基于Windows的。
TIA
编辑:接受的答案工作下Unixy平台(当readline的模块可用),但如果有人知道如何使Windows下这项工作,这将是非常感谢!
谢谢,readline.get_line_buffer()是一个好的开始。如果任何人有任何关于在Windows(这没有readline模块),使这项工作的提示,让我知道。 – andy 2009-01-19 19:02:10
它可以在Cygwin中工作吗? – cdleary 2009-01-20 04:59:28