我能想到的最好的方法是:
>>> import os>>> import sys>>> unbuffered = os.fdopen(sys.stdout.fileno(), 'w', 0)>>> unbuffered.write('test')test>>> >>> sys.stdout = unbuffered>>> print 'test'test在GNU / Linux上测试。似乎它也应该在Windows上工作。如果我知道如何重新打开sys.stdout,它将容易得多:
sys.stdout = open('???', 'w', 0)参考:
http :
//docs.python.org/library/stdtypes.html#file-objectshttp://docs.python.org/library/functions.html#openhttp://docs.python.org/library/ os.html#file-object-
creation
[编辑]
请注意,覆盖sys.stdout可能会更好。


![在程序中使用python(如python -u)中的无缓冲stdout [重复] 在程序中使用python(如python -u)中的无缓冲stdout [重复]](http://www.mshxw.com/aiimages/31/662096.png)
