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

dpy*_*yro 6 python file-io readline buffering readlines

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

我挖了源代码(/usr/lib/python3.2/fileinput.py)并看到它readlines(bufsize)在内部用于加载缓冲区.没有贝壳或其他管道的恶作剧.

dpy*_*yro 5

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

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