在 Python 解释器中禁用 sys.stdout 的输出缓冲
Python 解释器默认为 sys.stdout(类似文件)启用输出缓冲接受标准的对象输出。
禁用缓冲方法:
要禁用输出缓冲,有多种方法:
python -u [script.py]
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)
将此变量设置为非空值会禁用缓冲:
export PYTHONUNBUFFERED=1
此方法涉及打开一个新的文件描述符没有缓冲:
import os sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
此外,正如问题中提到的,可以在执行期间以编程方式设置全局标志。然而,似乎没有一个显式的全局标志来禁用输出缓冲。
以上是如何在 Python 中禁用 sys.stdout 的输出缓冲?的详细内容。更多信息请关注PHP中文网其他相关文章!