Ho visto questa domanda qui, ma le risposte fornite non hanno funzionato nel mio caso e sono state contrassegnate come duplicate.Come evitare il buffering nella libreria di file input Python
python -u
does not work forstdin
in Python 3.sys.stdin = sys.stdin.detach()
tiri unValueError: underlying buffer has been detached
.- Nessuno di questi funziona per gli input non
stdin
e altri file utilizzati come flusso. - Adding a hook does not work:
FileInput(openhook=hook_nobuf)
and usingopen(buffering=0)
in the hook.
ho scavato nel codice sorgente (/usr/lib/python3.2/fileinput.py
) e visto che readlines(bufsize)
veniva usata internamente per caricare un buffer. Niente conchiglie o altri spasmi di piping.
In realtà, penso che si possa desiderare 'python -u' in cima a qualsiasi altra cosa di cui si ha bisogno. Si desidera rimuovere qualsiasi buffering Python-e/o-stdio sottostante su 'stdin' e _also_ rimuovere qualsiasi buffer di lettura di riga superiore, giusto? – abarnert