Fortschrittsbalken in Python

Manav Narula 15 Oktober 2021
  1. Verwenden Sie das Modul tdqm in Python, um Fortschrittsbalken zu erstellen
  2. Verwenden Sie das Modul progressbar in Python, um Fortschrittsbalken zu erstellen
  3. Erstellen Sie Ihre eigene Funktion in Python, um Fortschrittsbalken zu erstellen
Fortschrittsbalken in Python

In der Welt der Programmierung arbeiten wir mit großen Codemengen. Das Kompilieren und Ausführen eines Programms kann viel Zeit in Anspruch nehmen. Daher ist es ein wenig hilfreich zu wissen, wie viel Fortschritt erzielt wurde und wie lange der Abschluss des Programms voraussichtlich dauern wird. In solchen Situationen können wir Fortschrittsbalken in Python verwenden. Darüber hinaus können sie uns helfen, festzustellen, ob unser Programm in der Mitte gestoppt wurde oder nicht.

In Python stehen viele Bibliotheken zur Verfügung, mit denen wir einen einfachen Fortschrittsbalken für unser Programm erstellen können, der uns dabei hilft. Wir werden jede Methode einzeln in diesem Tutorial diskutieren.

Verwenden Sie das Modul tdqm in Python, um Fortschrittsbalken zu erstellen

Die Bibliothek tdqm verfügt über ein schnelles und effizientes Framework zum Erstellen grundlegender Fortschrittsbalken. Es funktioniert gut auf Terminal- und Python-Notebooks und ist mit Windows, Linux und macOS kompatibel.

Im folgenden Code erstellen wir einen einfachen Fortschrittsbalken mit Funktionen aus diesem Modul.

from time import sleep
from tqdm import tqdm

for i in tqdm(range(10)):
    sleep(0.2)

Wir durchlaufen eine Schleife, und bei jeder Iteration wird auch der Fortschrittsbalken erhöht. Mit der Funktion sleep() wird der Compiler für einige Sekunden angehalten. Beachten Sie, dass in der Leiste standardmäßig die verbleibende Zeit, Iterationen pro Sekunde und der Prozentsatz angezeigt werden.

Von allen in diesem Tutorial behandelten Modulen hat dieses den geringsten Overhead.

Verwenden Sie das Modul progressbar in Python, um Fortschrittsbalken zu erstellen

Das Modul progressbar macht fast alles wie das Modul tdqm. Darüber hinaus gibt es Optionen zum Animieren Ihres Fortschrittsbalkens und zum Verwenden von Widgets, die auf dem Fortschrittsbalken angezeigt werden.

Der folgende Code zeigt ein Beispiel dafür.

import time
import progressbar

for i in progressbar.progressbar(range(100)):
    time.sleep(0.02)

Die progressbar2 existiert auch in Python und ist eine Abzweigung der progressbar. Es ist aufgrund seiner leistungsstarken und anpassbaren Funktionen äußerst beliebt. Es unterstützt auch Druckanweisungen mit dem Fortschrittsbalken. Auf der anderen Seite wurde dieses Modul seit Jahren nicht mehr gewartet.

Beachten Sie, dass mehr Bibliotheken verfügbar sind, wie z. B. alive-progress, progress, die dazu beitragen können, die Fortschrittsbalken zu erstellen. Diese beiden werden jedoch am häufigsten verwendet. Der einzige Unterschied zwischen ihnen besteht in den Animationen und anderen Anpassungen, die diese Bibliotheken anbieten.

Erstellen Sie Ihre eigene Funktion in Python, um Fortschrittsbalken zu erstellen

Wir können auch eine einfache Funktion erstellen, die einem Fortschrittsbalken ähnelt. Der folgende Code implementiert dies.

import time
import sys


def progressbar(it, prefix="", size=60, file=sys.stdout):
    count = len(it)

    def show(j):
        x = int(size * j / count)
        file.write("%s[%s%s] %i/%i\r" % (prefix, "#" * x, "." * (size - x), j, count))
        file.flush()
        file.write("\n")

    show(0)
    for i, item in enumerate(it):
        yield item
        show(i + 1)
        file.write("\n")
    file.flush()


for i in progressbar(range(15), "Computing: ", 40):
    time.sleep(0.1)

Ausgabe:

Computing: [........................................] 0/15
Computing: [##......................................] 1/15
Computing: [#####...................................] 2/15
Computing: [########................................] 3/15
Computing: [##########..............................] 4/15
Computing: [#############...........................] 5/15
Computing: [################........................] 6/15
Computing: [##################......................] 7/15
Computing: [#####################...................] 8/15
Computing: [########################................] 9/15
Computing: [##########################..............] 10/15
Computing: [#############################...........] 11/15
Computing: [################################........] 12/15
Computing: [##################################......] 13/15
Computing: [#####################################...] 14/15
Computing: [########################################] 15/15

Wir berechnen die insgesamt erforderlichen Iterationen und erhöhen bei jeder Iteration das Symbol # und drucken es aus.

Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn