Widziałem to pytanie tutaj zadane, ale podane odpowiedzi nie działały w moim przypadku i zostały oznaczone jako duplikaty.Jak uniknąć buforowania w bibliotece wprowadzania plików Python
python -u
does not work forstdin
in Python 3.sys.stdin = sys.stdin.detach()
rzucaValueError: underlying buffer has been detached
.- Żadne z nich nie działa dla wejść innych niż
stdin
i innych plików używanych jako strumień. - Adding a hook does not work:
FileInput(openhook=hook_nobuf)
and usingopen(buffering=0)
in the hook.
I wykopanych w kodzie źródłowym (/usr/lib/python3.2/fileinput.py
) i stwierdził, że readlines(bufsize)
był stosowany wewnętrznie załadowanie bufora. Bez powłoki i innych sznurków.
Właściwie, myślę, że możesz chcieć 'python -u' na czymkolwiek, czego potrzebujesz. Chcesz usunąć bazowe buforowanie Pythona i/lub-stdio na 'stdin' oraz _also_ usunąć dowolny bufor odczytu linii wysokiego poziomu, prawda? – abarnert