Sto provando a leggere un'enorme quantità di righe dallo standard input con python.Python: leggere un numero enorme di righe dallo stdin
more hugefile.txt | python readstdin.py
Il problema è che il programma si blocca non appena ho letto una sola riga.
print sys.stdin.read(8)
exit(1)
Questo stampa i primi 8 byte ma poi mi aspetto che termini, ma non lo fa mai. Penso che non si tratta solo di leggere i primi byte, ma di cercare di leggere l'intero file in memoria.
stesso problema con sys.stdin.readline()
quello che voglio fare è, naturalmente, di leggere tutte le linee, ma con un buffer in modo che io non esaurire la memoria.
sto usando Python 2.6
perché stai usando più invece di gatto o anche solo un semplice redirect di stdin? –
Non vedo alcun motivo per cui il programma si "congela". Come stai scoprendo che si blocca? –
Ah stavo eseguendo da riga di comando di Windows. Nessun gatto su Windows. – Martin