为什么必须在python 3中缓冲文本I/O?

  • 回答 (2)
  • 关注 (0)
  • 查看 (64)

Python 2支持非缓冲文本I/O。

在python 3中,同样的方法不起作用。为什么未缓冲的文本I/O被禁用?

> import sys
> sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
builtins.ValueError: can't have unbuffered text I/O

二进制文件仍然工作得很好:

> sys.stdout = os.fdopen(sys.stdout.fileno(), 'wb', 0) # works fine
uncle_lightuncle_light提问于
Maybe回答于
已采纳

这是一个开放的bug,问题#17404(最新更新2013-03-13):http ://bugs.python.org/issue17404

等待你的阿公数据回答于

对于文本文件,如果要逐行使用缓冲,请使用open(..., buffering=1)

来自python文档:

1选择行缓冲(仅在文本模式下可用)

扫码关注云+社区

领取腾讯云代金券