dpy*_*yro 6 python file-io readline buffering readlines
我在这里看到了这个问题,但是给出的答案在我的案例中没有用,并且被标记为重复.
python -ustdin在Python 3中不起作用.sys.stdin = sys.stdin.detach()抛出一个ValueError: underlying buffer has been detached.stdin输入和其他文件用作流.FileInput(openhook=hook_nobuf)并open(buffering=0)在钩子中使用.我挖了源代码(/usr/lib/python3.2/fileinput.py)并看到它readlines(bufsize)在内部用于加载缓冲区.没有贝壳或其他管道的恶作剧.
对我有用的只是设定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)