Aggiorna continuamente lo script Python in NPPexec Console [Blocco note ++]
Domanda
Scrivo script Python con NPPEXEC / Blocco note ++.Come aggiornare la mia finestra della console come viene eseguita ogni riga del mio codice Python?Ad esempio, il seguente script del timer:
#!usr/bin/env python
import time
import threading
class Timer(threading.Thread):
def __init__(self, seconds):
self.runTime = seconds
threading.Thread.__init__(self)
def run(self):
counter = self.runTime
for sec in range(self.runTime):
print counter
time.sleep(1.0)
counter -= 1
print "Done."
if __name__ == '__main__':
t = Timer(10)
t.start()
.
Quando corro in questo in una finestra del prompt dei comandi, live aggiorna ogni secondo.Ma in NPPexec Console, si aggiorna solo dopo l'uscita.C'è un modo per ottenere la console NPPexec per comportarsi come il prompt dei comandi e aggiornare continuamente?
Soluzione 2
Tutto ciò che deve essere fatto è invocare il comando python -u
per eseguire lo script, I.E. python -u timer.py
anziché python timer.py
Stampa Uscita in modalità non sbozzata per impostazione predefinita.Per il flussaggio di uscita personalizzato in programmi più dettagliati, la definizione stdout
deve essere riscritta .
Altri suggerimenti
Non ha familiarità con come quella particolare app console gestisce l'uscita, ma stdout
viene tamponato per impostazione predefinita, che è probabilmente il problema qui.Vedi Questa domanda per i modi di disabilitarlo.