Python解释器的sys.stdout
默认启用输出缓冲吗?
如果答案是肯定的,有哪些禁用它的方法?
目前的建议:
- 使用
-u
命令行开关 - 将
sys.stdout
包装在每次写入后刷新的对象中 - 设置
PYTHONUNBUFFERED
环境变量 sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
在执行期间是否有其他方法以编程方式设置sys
/sys.stdout
中的某个全局标志?
如果您只想在使用print
后刷新特定写入,参见如何刷新print函数的输出?。
-u
的缺点是它不能用于已编译的字节码或以__main__.py
文件作为入口点的应用程序。 - akhan