删除 Python sys.stdout 中的输出缓冲
Python 的 sys.stdout 对象通常在缓冲模式下运行,输出在输出之前会被临时存储。显示。虽然此缓冲可以提高大型传输的性能,但它也会延迟交互式环境中关键信息的显示。
禁用输出缓冲
禁用输出缓冲并确保立即显示 sys.stdout 输出,有几种方法可用:
-
命令行开关: 在调用 Python 解释器时添加“-u”开关会完全跳过缓冲。
-
包装对象: 使用每次写入后刷新的对象包装 sys.stdout,例如作为提供的响应中的“Unbuffered”类,禁用缓冲。
-
环境变量: 设置 PYTHONUNBUFFERED 环境变量可防止整个 Python 进程的缓冲。
-
文件描述符操作: 将 sys.stdout 设置为 os.fdopen(sys.stdout.fileno() , 'w', 0) 通过将 sys.stdout 的文件描述符更改为无缓冲来禁用缓冲
-
代码修改:您可以在执行过程中动态地将 sys.stdout 流更改为无缓冲版本。但由于存在潜在的不稳定因素,一般不建议使用该方法。
补充说明
对于特定的打印语句,写入后使用flush方法可以保证立即生效输出。有关刷新各个打印操作的详细信息,请参阅链接的资源。
以上是如何消除 Python sys.stdout 中的输出缓冲?的详细内容。更多信息请关注PHP中文网其他相关文章!