所以我有一个线程Python程序,它接受用户的输入并同时打印数据。问题是,当程序位于raw_input()时,它不会打印任何内容,并会在用户按下回车后打印出来。
有没有办法让用户同时输入和打印?
答案 0 :(得分:1)
您有两种选择,基本上是:线程和异步IO。
您可以让一个线程用输入的数据填充队列,让另一个线程打印其内容。请注意,线程很难(不可能?)做正确。
异步IO意味着您有一个主调度程序,可在数据可用时调用回调(即用户已输入数据)。有一些框架可以为您提取大部分内容,例如asyncore和Twisted。
大多数GUI工具包还将通过其主循环实现异步调度系统,即.. Tkinter,wxWidgets和pygtk。这也将解决混合读取和写入同一(终端)屏幕时的界面问题。