我在這裏看到過這個問題,但給出的答案在我的情況下不起作用,並被標記爲重複。如何避免在Python文件輸入庫中緩衝
python -u
does not work forstdin
in Python 3.sys.stdin = sys.stdin.detach()
拋出一個ValueError: underlying buffer has been detached
。- 這些都不適用於非
stdin
輸入和其他文件被用作流。 - Adding a hook does not work:
FileInput(openhook=hook_nobuf)
and usingopen(buffering=0)
in the hook.
我挖在源代碼(/usr/lib/python3.2/fileinput.py
),看到readlines(bufsize)
正在內部用於裝載的緩衝器。沒有外殼或其他管道shenanigans。
實際上,我認爲你可能希望'python -u'在你需要的任何東西之上。你想刪除'stdin'上任何基礎的Python和/或-stdio緩衝區,並且_also_刪除任何更高級的行讀緩衝區,對吧? – abarnert 2013-02-21 21:30:08