2010-09-18 222 views
2

所以我有一個線程Python程序,它從用戶處獲取輸入並同時打印數據。問題是,當程序坐在raw_input()時,它不會打印任何內容,並會在用戶按下回車後打印出來。原始輸入和打印

有沒有辦法讓用戶輸入和打印在同一時間?

+0

「它不會打印任何內容,並會在用戶按下輸入後打印所有內容」這就是您的操作系統的工作方式。你期望什麼? – 2010-09-18 12:56:05

回答

1

你有兩個選擇,基本上是:線程和異步IO。

您可以讓一個線程用輸入的數據填充隊列,並讓其他線程打印其內容。被警告線程很難(不可能?)做對。

異步IO意味着您有一個主調度程序,在數據可用時(即用戶輸入數據)調用回調。有一些框架可以爲你抽象大部分內容,比如asyncore和Twisted。

大多數GUI工具包還將通過它們的主循環實現異步調度系統,即.. Tkinter,wxWidgets和pygtk。這也將解決混合讀取和寫入同一個(終端)屏幕時遇到的界面問題。