所以我有一个线程化的 Python 程序,它从用户那里获取输入并同时打印数据。问题在于,当程序位于 raw_input() 时,它不会打印任何内容,而是在用户按下 enter 后打印所有内容。
有没有办法让用户输入和打印同时进行?
请您参考如下方法:
您基本上有两个选择:线程和异步 IO。
您可以让一个线程用输入的数据填充队列,并让另一个线程打印其内容。请注意,线程很难(不可能?)正确执行。
异步 IO 意味着您有一个主调度程序,它在数据可用时调用回调(即用户已输入数据)。有一些框架可以为您抽象出其中的大部分内容,例如 asyncore 和 Twisted。
大多数 GUI 工具包还将通过它们的主循环实现异步调度系统,即 Tkinter、wxWidgets 和 pygtk。这还将解决在同一(终端)屏幕上混合读取和写入时遇到的界面问题。
