Ich benutze die Enthought Canopy-IDE, um Python zu schreiben und die Ausgabe von print
Befehle erreichen das ipython-Ausgabefenster nicht zu der Zeit, als ich sie erwarten würde. Der klarste Weg zu erklären, ist ein Beispiel zu geben:Verzögerung/Diskrepanz zwischen erwarteter und tatsächlicher Ausgabe an iPython-Ausgabe
import time
print 1
print 2
time.sleep(1)
print 3
for i in range(10):
print i
time.sleep(0.5)
Die anfänglichen 1
, 2
3
und gleichzeitig nach einer Sekunde angezeigt werden, und dann gibt es eine halbe Sekunde Verzögerung, bevor die nächsten 0
angezeigt wird.
(im Gegensatz zu der erwarteten Momentan und gleichzeitige Anzeige von 1
und 2
, dann eine Verzögerung von 1 Sekunde, bevor eine gleichzeitige Anzeige von 3
und 0
, dann halbe Sekunde Verzögerung)
Dies verursacht mir Probleme, wie ich bin Ich suche nach Auslesungen von Variablen, bevor ein zeitraubender Teil des Skripts ausgeführt wird, und ich kann es nicht dazu bringen, diese Auslesungen anzuzeigen, ohne das Programm nach dem Aufruf des Befehls print
zu beenden.
Irgendwelche Ideen/Lösungen?
Ich bin auf Windows 7, lassen Sie mich wissen, wenn Sie andere Spezifikationen/config Details benötigen ...
Dank!
Ja, die einfachste einfach zu nennen, ist 'sys.stdout.flush()', wenn Sie alles sehen wollen, die gedruckt worden ist. Dies kann in jedem Programm ein Problem sein, aber noch mehr, wenn der Kernel (wo der Druckbefehl ausgeführt wird) sich in einem anderen Prozess befindet als im Frontend (wo die Ausgabe angezeigt wird). –