如何避免在Python文件输入库中进行缓冲

时间:2013-02-21 21:13:49

标签: python readline buffering file-io readlines

我在这里问过这个问题,但是给出的答案在我的案例中没有用,并且被标记为重复。

我挖掘了源代码(/usr/lib/python3.2/fileinput.py),发现内部正在使用readlines(bufsize)来加载缓冲区。没有贝壳或其他管道诡计。

1 个答案:

答案 0 :(得分:5)

对我有用的只是设置FileInput(bufsize=1)file.readlines()文档确实声明“可选的大小参数,如果给定,则是返回行中总字节数的近似界限。”在实践中,我每次只获得一个新行,而不是必须填充缓冲区。

with fileinput.input(bufsize=1) as f:
    for line in f:
        print("One line in, one line out!")