我在这里看到过这个问题,但给出的答案在我的情况下不起作用,并且被标记为重复。
python -u
不适用于stdin
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)
在内部用于加载缓冲区。没有外壳或其他管道恶作剧。