Atualize continuamente o script Python no console NppExec [Notepad++]
Pergunta
Eu escrevo scripts Python com NppExec/Notepad++.Como atualizo minha janela do console à medida que cada linha do meu código Python é executada?Por exemplo, o seguinte script de temporizador:
#!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 executo isso em uma janela de prompt de comando, ele é atualizado a cada segundo.Mas no console NppExec, ele é atualizado somente após a saída.Existe uma maneira de fazer com que o console NppExec se comporte como um prompt de comando e seja atualizado continuamente?
Solução 2
Tudo o que precisa ser feito é invocar o python -u
comando para executar o script, ou seja, python -u timer.py
em vez de python timer.py
Isso imprime a saída no modo sem buffer por padrão.Para liberação de saída personalizada em programas mais detalhados, o stdout
definição tem que ser reescrito.
Outras dicas
Não estou familiarizado com a forma como esse aplicativo de console específico lida com a saída, mas stdout
é armazenado em buffer por padrão, o que provavelmente é o problema aqui.Ver essa questão para saber como desativá-lo.