Das Erstellen eines Fortschrittsbalkens im Terminal kann die Benutzererfahrung durch die Bereitstellung einer visuellen Darstellung erheblich verbessern Darstellung des Fortschritts einer Aufgabe. Allerdings kann es eine Herausforderung sein, die Integrität der vorherigen Konsolenausgabe beizubehalten und gleichzeitig den Fortschrittsbalken zu aktualisieren. In diesem Artikel wird erläutert, wie Sie in Python einen Fortschrittsbalken erstellen und dabei den vorherigen Text beibehalten.
Hier ist eine wiederverwendbare Fortschrittsbalkenfunktion, die das Problem behebt:
def printProgressBar(iteration, total, prefix='', suffix='', decimals=1, length=100, fill='█', printEnd='\r'): percent = ("{0:." + str(decimals) + "f}").format(100 * (iteration / float(total))) filledLength = int(length * iteration // total) bar = fill * filledLength + '-' * (length - filledLength) print(f'\r{prefix} |{bar}| {percent}% {suffix}', end=printEnd) if iteration == total: print()
Parameter | Description |
---|---|
iteration | Current iteration of the loop |
total | Total number of iterations |
prefix | Prefix text before the progress bar |
suffix | Suffix text after the progress bar |
decimals | Number of decimal places for percentage |
length | Width of the progress bar |
fill | Character used to fill the progress bar |
printEnd | End of line character (e.g., 'r') |
Zur Verwendung des Fortschrittsbalken, rufen Sie die Funktion innerhalb einer Schleife auf:
total_items = 100 for item in range(total_items): # Do your processing here... printProgressBar(item + 1, total_items)
Für einen vereinfachten Anwendungsfall betrachten Sie diese Single-Call-Version des Fortschrittsbalkens:
def progressBar(iterable, prefix='', suffix='', decimals=1, length=100, fill='█', printEnd='\r'): total = len(iterable) def printProgressBar(iteration): percent = ("{0:." + str(decimals) + "f}").format(100 * (iteration / float(total))) 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() for item in progressBar(range(100)): # Do your processing here...
Diese Version erfordert keinen ersten Aufruf, um den Fortschrittsbalken auf 0 % zu setzen und akzeptiert Iterables als Eingabe.
Für Python 2-Kompatibilität verwenden Sie den folgenden Code anstelle der Python 3-Zeichenfolgenformatierung:
print('\r%s |%s| %s%% %s' % (prefix, bar, percent, suffix), end=printEnd)
Durch die Nutzung der bereitgestellten Funktionen können Sie mühelos Integrieren Sie einen Textfortschrittsbalken in Ihre Konsolenanwendungen und vermeiden Sie gleichzeitig das Löschen des vorherigen Textes. Die anpassbaren Parameter ermöglichen ein maßgeschneidertes Erscheinungsbild des Fortschrittsbalkens, das Ihren spezifischen Anforderungen entspricht.
Das obige ist der detaillierte Inhalt vonWie erstelle ich mit Python eine Textfortschrittsleiste in Ihrem Terminal?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!