Seite 1 von 1

Ausgabe des Bearbeitungszustands

Verfasst: Montag 24. Oktober 2011, 10:11
von Jeremy
Hallo Forum,

in meinem Skript wird der Fortschritt wie folgt für den Nutzer sichtbar:

Code: Alles auswählen

for i in range(100):
  tue etwas
  print "Bin bei Schritt %i von 100" %i
Damit erhalte ich bei jedem Schleifendurchlauf eine neue Ausgabe in die shell (also hier 100 Zeilen). Was muss ich tun, damit nur einen Zeile geschreiben wird, die aber immer wieder aktualisiert wird?

Gruß
Jeremy

Re: Ausgabe des Bearbeitungszustands

Verfasst: Montag 24. Oktober 2011, 10:51
von BlackJack
@Jeremy: Das Zeichen '\r' ist der Wagenrücklauf. Heisst so, weil er beim Drucker den Druckkopf wieder an den Anfang der Zeile zurück fährt. Um sicher zu sein, dass die Daten auch ausgegeben werden, solltest Du `sys.stdout.flush()` aufrufen. Konsolenausgaben sind nämlich in der Regel zeilengepuffert, das heisst die werden erst ausgegeben, wenn ein '\n' ausgegeben wurde. Oder eben wenn man die Ausgabe explizit mit `flush()` erzwingt.

Re: Ausgabe des Bearbeitungszustands

Verfasst: Dienstag 25. Oktober 2011, 08:33
von Jeremy
Wunderbar, ich bedanke mich recht herzlich.