gpt4 book ai didi

python - 禁用输出缓冲

转载 作者:IT老高 更新时间:2023-10-28 12:02:33 25 4
gpt4 key购买 nike

sys.stdout 的 Python 解释器中是否默认启用输出缓冲?

如果答案是肯定的,有什么方法可以禁用它?

目前的建议:

  1. 使用 -u 命令行开关
  2. sys.stdout 包装在每次写入后刷新的对象中
  3. 设置 PYTHONUNBUFFERED 环境变量
  4. sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)

有没有其他方法可以在执行期间以编程方式在 sys/sys.stdout 中设置一些全局标志?

最佳答案

来自 Magnus Lycka answer on a mailing list :

You can skip buffering for a wholepython process using python -u(or #!/usr/bin/env python -u etc.) or bysetting the environment variablePYTHONUNBUFFERED.

You could also replace sys.stdout withsome other stream like wrapper whichdoes a flush after every call.

class Unbuffered(object):
def __init__(self, stream):
self.stream = stream
def write(self, data):
self.stream.write(data)
self.stream.flush()
def writelines(self, datas):
self.stream.writelines(datas)
self.stream.flush()
def __getattr__(self, attr):
return getattr(self.stream, attr)

import sys
sys.stdout = Unbuffered(sys.stdout)
print 'Hello'

关于python - 禁用输出缓冲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/107705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com