Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich mit Python einen Textfortschrittsbalken im Terminal erstellen?
Eine geeignete Methode zur Visualisierung des Download- und Upload-Fortschritts im Terminal zu finden, ohne vorherige Ausgaben zu löschen, kann eine häufige Aufgabe sein. In diesem Artikel werden Python-Lösungen zum Erstellen eines Fortschrittsbalkens oder einer ähnlichen Visualisierung untersucht, die an die Konsole ausgegeben werden und gleichzeitig die vorherige Programmausgabe beibehalten.
Für einen Allzweck-Fortschrittsbalken, Sie kann die folgende Python-Funktion verwenden:
def printProgressBar(iteration, total, prefix='', suffix='', decimals=1, length=100, fill='█', printEnd='\r'): """ Call in a loop to create a terminal progress bar @params: iteration - Required : current iteration (Int) total - Required : total iterations (Int) prefix - Optional : prefix string (Str) suffix - Optional : suffix string (Str) decimals - Optional : positive number of decimals in percent complete (Int) length - Optional : character length of bar (Int) fill - Optional : bar fill character (Str) printEnd - Optional : end character (e.g. "\r", "\r\n") (Str) """ percent = ("{0:.{dec}f}".format(100 * (iteration / float(total)), dec=decimals)) filledLength = int(length * iteration / total) bar = fill * filledLength + '-' * (length - filledLength) print(f'\r{prefix} |{bar}| {percent}% {suffix}', end=printEnd) if iteration == total: print()
# A List of Items items = list(range(0, 57)) l = len(items) printProgressBar(0, l, prefix='Progress:', suffix='Complete', length=50) for i, item in enumerate(items): # Do stuff... # Update Progress Bar printProgressBar(i + 1, l, prefix='Progress:', suffix='Complete', length=50)
def progressBar(iterable, prefix='', suffix='', decimals=1, length=100, fill='█', printEnd='\r'): """ Call in a loop to create a terminal progress bar @params: iterable - Required : iterable object (Iterable) prefix - Optional : prefix string (Str) suffix - Optional : suffix string (Str) decimals - Optional : positive number of decimals in percent complete (Int) length - Optional : character length of bar (Int) fill - Optional : bar fill character (Str) printEnd - Optional : end character (e.g. "\r", "\r\n") (Str) """ total = len(iterable) def printProgressBar(iteration): percent = ("{0:.{dec}f}".format(100 * (iteration / float(total)), dec=decimals)) filledLength = int(length * iteration / total) bar = fill * filledLength + '-' * (length - filledLength) print(f'\r{prefix} |{bar}| {percent}% {suffix}', end=printEnd) printProgressBar(0) for i, item in enumerate(iterable): yield item printProgressBar(i + 1) print()
Für Kompatibilität mit Python 2 fügen Sie am Anfang Ihres Skripts Folgendes hinzu:
# -*- coding: utf-8 -*-
Ersetzen Sie Python 3 Zeichenfolgenformatierung in der Fortschrittsbalkenfunktion mit Folgendem:
print('%\r%s |%s| %s%% %s' % (prefix, bar, percent, suffix), end=printEnd)
Das obige ist der detaillierte Inhalt vonWie kann ich mit Python einen Textfortschrittsbalken im Terminal erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!