Frage

Ich schreibe Python-Skripte mit NppExec/Notepad++.Wie aktualisiere ich mein Konsolenfenster, während jede Zeile meines Python-Codes ausgeführt wird?Zum Beispiel das folgende Timer-Skript:

#!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()

Wenn ich dies in einem Eingabeaufforderungsfenster ausführe, wird es jede Sekunde live aktualisiert.Aber in der NppExec-Konsole wird es erst nach dem Beenden aktualisiert.Gibt es eine Möglichkeit, die NppExec-Konsole dazu zu bringen, sich als Eingabeaufforderung zu verhalten und kontinuierlich zu aktualisieren?

War es hilfreich?

Lösung 2

Alles, was getan werden muss, ist das aufzurufen python -u Befehl zum Ausführen des Skripts, d. h. python -u timer.py anstatt python timer.py

Dadurch wird die Ausgabe standardmäßig im ungepufferten Modus gedruckt.Für benutzerdefiniertes Leeren der Ausgabe in detaillierteren Programmen ist die stdout Definition muss sein umgeschrieben.

Andere Tipps

Nicht vertraut, mit dem die Ausgabe dieser Konsolen-App umgibt, der stdout jedoch standardmäßig gepuffert wird, was wahrscheinlich das Problem hier ist.Siehe Diese Frage für Wege, um es zu deaktivieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top