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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top