Ho uno script Python di lunga durata che invia periodicamente dati all'output standard che ho invocato con qualcosa del tipo:
python script.py > output.txt
Questo script è in esecuzione da un po 'e voglio interromperlo con Ctrl+ Cma non perderne alcun output. Sfortunatamente quando ho implementato lo script ho dimenticato di svuotare il buffer dopo ogni riga di output con qualcosa come la sys.stdout.flush()
(la soluzione precedentemente suggerita per forzare il flush dell'output), quindi invocare Ctrl+ Cadesso mi farà perdere tutto il mio output.
Se ti stai chiedendo se esiste un modo per interagire con uno script python in esecuzione (o, più in generale, un processo in esecuzione) per forzarlo a svuotare il suo buffer di output. Non sto chiedendo come modificare e rieseguire lo script per farlo scorrere correttamente - questa domanda riguarda in particolare l'interazione con un processo in esecuzione (e, nel mio caso, non perdere l'output della mia attuale esecuzione del codice).