擅长:python、mysql、java
<p>一些旧版本的Windows模拟了通过文件的管道(所以它们很容易出现这样的问题),但这已经10多年没有问题了。尝试添加</p>
<pre><code> sys.stdout.flush()
</code></pre>
<p>在<code>print</code>之后发送给生产者,并尝试使生产者的stdout没有缓冲(通过使用<code>python -u</code>)。</p>
<p>当然,如果你无法控制生产商,这也无济于事——如果生产商缓冲了太多的产出,你还会等很长时间。</p>
<p>不幸的是,虽然在类Unix的操作系统上有很多方法可以解决这个问题,比如pyexpect,<a href="http://sourceforge.net/projects/pexpect/" rel="noreferrer">pexpect</a>,<a href="http://code.google.com/p/exscript/" rel="noreferrer">exscript</a>,和<a href="http://www.lag.net/paramiko/" rel="noreferrer">paramiko</a>,但我怀疑它们中的任何一个在Windows上都能工作;如果真是这样,我会尝试<a href="http://www.cygwin.com/" rel="noreferrer">Cygwin</a>,它在Windows上放置了足够多的类似Linux的贴面,以便经常在Windows框上使用类似Linux的方法。</p>