擅长:python、mysql、java
<p>我能想到的最好的:</p>
<pre><code>>>> import os
>>> import sys
>>> unbuffered = os.fdopen(sys.stdout.fileno(), 'w', 0)
>>> unbuffered.write('test')
test>>>
>>> sys.stdout = unbuffered
>>> print 'test'
test
</code></pre>
<p>在GNU/Linux上测试。它似乎也应该在窗户上工作。如果我知道如何重新打开sys.stdout,会容易得多:</p>
<pre><code>sys.stdout = open('???', 'w', 0)
</code></pre>
<p>参考文献:<br/>
<a href="http://docs.python.org/library/stdtypes.html#file-objects" rel="noreferrer">http://docs.python.org/library/stdtypes.html#file-objects</a><br/>
<a href="http://docs.python.org/library/functions.html#open" rel="noreferrer">http://docs.python.org/library/functions.html#open</a><br/>
<a href="http://docs.python.org/library/os.html#file-object-creation" rel="noreferrer">http://docs.python.org/library/os.html#file-object-creation</a></p>
<p>[编辑]</p>
<p>请注意,在覆盖sys.stdout之前最好先关闭它。</p>