2010-09-18 101 views
2

所以我有一个线程Python程序,它从用户处获取输入并同时打印数据。问题是,当程序坐在raw_input()时,它不会打印任何内容,并会在用户按下回车后打印出来。原始输入和打印

有没有办法让用户输入和打印在同一时间?

+0

“它不会打印任何内容,并会在用户按下输入后打印所有内容”这就是您的操作系统的工作方式。你期望什么? – 2010-09-18 12:56:05

回答

1

你有两个选择,基本上是:线程和异步IO。

您可以让一个线程用输入的数据填充队列,并让其他线程打印其内容。被警告线程很难(不可能?)做对。

异步IO意味着您有一个主调度程序,在数据可用时(即用户输入数据)调用回调。有一些框架可以为你抽象大部分内容,比如asyncore和Twisted。

大多数GUI工具包还将通过它们的主循环实现异步调度系统,即.. Tkinter,wxWidgets和pygtk。这也将解决混合读取和写入同一个(终端)屏幕时遇到的界面问题。