2016-11-21 18 views
1

ich den folgenden Code schreiben einen Text Fortschrittsbalken zu generieren:Python: in der gleichen Zeile drucken und überschreiben die vorherigen

for ii in range(len(imgPaths)): 
    temp = misc.imread(imgPaths[ii]) 
    imgData[ii,:,:,:] = temp 
    print 100*ii/len(imgPaths), "Percent complete\r", 

Die Codes erzeugen, um den Fortschritt wie folgt:

99 Percent complete Percent complete5 Percent complete7 Percent complete10 Percent complete12 Percent complete15 Percent complete17 Percent complete20 Percent complete22 Percent complete24 Percent complete27 Percent complete29 Percent complete32 Percent complete34 Percent complete37 Percent complete40 Percent complete42 Percent complete45 Percent complete48 Percent complete50 Percent complete53 Percent complete56 Percent complete58 Percent complete60 Percent complete62 Percent complete65 Percent complete67 Percent complete69 Percent complete71 Percent complete73 Percent complete76 Percent complete78 Percent complete81 Percent complete82 Percent complete84 Percent complete87 Percent complete90 Percent complete91 Percent complete94 Percent complete96 Percent complete99 Percent complete 

Es scheint, Drucken auf dem gleichen, aber zu redundant. Gibt es eine Möglichkeit, die Druckergebnisse auf effiziente Weise zu vereinfachen? Ich möchte, dass der aktualisierte Fortschritt den vorherigen überschreibt.

+1

prüfen https://docs.python.org/2/howto/curses.html oder ANSI-Escape-Sequenzen – JuniorCompressor

+2

Seltsam, die Wagenrücklaufzeichen soll den Druck Cursor zurückzukehren an den Anfang der Zeile, aber es scheint nicht für Ihre Ausgabe passiert ... Drucken Sie auf die Befehlszeile oder etwas anderes? Welche IDE verwenden Sie, wenn welche? – Kevin

+0

Es gibt immer http://click.pocoo.org/5/utils/#showing-progress-bars –

Antwort

1

Versuchen Sie stattdessen:

print "\r{} Percent complete".format(100*ii/len(imgPaths)), 
Verwandte Themen