我有一個基於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