爲了簡化起見,我們假設我正在嘗試在Python中編寫命令行雙向對話。我希望用戶在命令提示符下輸入他的消息input()
,但是監聽線程可以隨時打印消息。默認情況下,這會「打破」用戶的輸入。在視覺上是這樣的:同時輸出到終端時保持用戶的輸入不變
userB>Stop interuserA wrote:Hey check this out!
rupting me!
我能找到最接近的是this answer here這幾乎是,但不完全是,我正在尋找,但它並指出我朝着blessings
包這似乎是什麼我需要(雖然我很滿意任何軟件包的答案,甚至純粹的ANSII)。
我想要實現的是打印來自輸出輸出線程以上的用戶的輸入,以便他的文本不會中斷。比方說,用戶鍵入:
userB>Stop inter
突然的消息來自從線程,但我們的用戶的輸入不剎:
userA says: Ok I won't interrupt you
userB>Stop inter
我應該我線程理論print_incoming_message()
方法模樣來實現這個?
注意:我使用Linux,對跨平臺兼容性不感興趣。
謝謝。我是否必須自己跟蹤用戶輸入,還是有辦法在覆蓋前說「保存當前輸入」?即:有沒有辦法獲得尚未被刷新的輸入? – Juicy
你應該自己追蹤輸入,從最後一個換行符開始 – slezica
發現了'readline'模塊,它有'get_line_buffer()'方法。到目前爲止它工作得很好!感謝您指點我正確的方向。 https://docs.python.org/3/library/readline.html#module-readline – Juicy