Heim > Backend-Entwicklung > Python-Tutorial > Wie erstelle ich mit Python eine Textfortschrittsleiste in Ihrem Terminal?

Wie erstelle ich mit Python eine Textfortschrittsleiste in Ihrem Terminal?

Mary-Kate Olsen
Freigeben: 2024-12-02 17:26:12
Original
734 Leute haben es durchsucht

How to Create a Text Progress Bar in Your Terminal Using Python?

Textfortschrittsbalken im Terminal mit Blockzeichen

Einführung

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.

Lösung: Benutzerdefinierte Fortschrittsbalkenfunktion

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()
Nach dem Login kopieren

Funktionsparameter:

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')

Verwendung:

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)
Nach dem Login kopieren

Single-Call-Version:

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...
Nach dem Login kopieren

Diese Version erfordert keinen ersten Aufruf, um den Fortschrittsbalken auf 0 % zu setzen und akzeptiert Iterables als Eingabe.

Python 2 Kompatibilität:

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)
Nach dem Login kopieren

Fazit:

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage