Ich versuche, ein einfaches Tool zu schreiben, das Dateien von CD liest, einige Bildverarbeitung macht und das Ergebnis des Algorithmus zurückgibt. Da das Programm manchmal eine Weile dauern kann, habe ich gerne einen Fortschrittsbalken, damit ich weiß, wo es im Programm ist. Und da ich meine Befehlszeile nicht überladen möchte und ich auf einer Unix-Plattform bin, wollte ich das '\ r'-Zeichen verwenden, um den Fortschrittsbalken nur in einer Zeile zu drucken.Python Print-Anweisung druckt nichts mit einem Wagenrücklauf
Aber wenn ich diesen Code hier habe, druckt es nichts.
Ich habe auch versucht:
print '\r', i, '/', len(files),
Jetzt nur sicherstellen, das in Python gearbeitet, habe ich versucht, dies:
heartbeat = 1
while True:
print '\rHello, world', heartbeat,
heartbeat += 1
Dieser Code funktioniert perfekt. Was ist los? Mein Verständnis von Wagenrücklauf unter Linux war, dass es nur das Zeilenvorschubzeichen an den Anfang verschieben würde und dann könnte ich alten Text, der zuvor geschrieben wurde, überschreiben, solange ich keinen Zeilenvorschub irgendwo ausdrucke. Dies scheint jedoch nicht zu passieren.
Gibt es auch eine bessere Möglichkeit, einen Fortschrittsbalken in einer Befehlszeile anzuzeigen als was ich gerade versuche?
http://pypi.python.org/pypi/progressbar – kennytm