Barre de progression en Python

Manav Narula 30 janvier 2023
  1. Utilisez le module tdqm en Python pour créer des barres de progression
  2. Utilisez le module progressbar en Python pour créer des barres de progression
  3. Créez votre propre fonction en Python pour créer des barres de progression
Barre de progression en Python

Dans le monde de la programmation, nous travaillons avec de gros volumes de code. Un programme peut prendre beaucoup de temps à se compiler et à s’exécuter. Par conséquent, il est un peu utile de savoir quels progrès ont été accomplis et la durée estimée d’achèvement du programme. Pour de telles situations, nous pouvons utiliser des barres de progression en Python. De plus, ils peuvent nous aider à identifier si notre programme s’est arrêté au milieu ou non.

En Python, nous avons de nombreuses bibliothèques disponibles qui peuvent nous aider à créer une barre de progression simple pour notre programme afin de nous aider avec cela. Nous discuterons de chaque méthode une par une dans ce tutoriel.

Utilisez le module tdqm en Python pour créer des barres de progression

La librairie tdqm dispose d’un framework rapide et efficace pour créer des barres de progression basiques. Il fonctionne bien sur les terminaux, les ordinateurs portables python et est compatible avec Windows, Linux et macOS.

Dans le code suivant, nous créons une barre de progression simple à l’aide des fonctions de ce module.

from time import sleep
from tqdm import tqdm

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

Nous parcourons une boucle et à chaque itération, la barre de progression est également incrémentée. La fonction sleep() est utilisée pour mettre le compilateur en pause pendant quelques secondes spécifiées. Notez que par défaut, la barre affiche le temps restant, les itérations par seconde et le pourcentage.

De tous les modules abordés dans ce didacticiel, celui-ci a le moins de frais généraux.

Utilisez le module progressbar en Python pour créer des barres de progression

Le module progressbar fait presque tout comme le module tdqm. En plus de cela, il dispose d’options pour animer votre barre de progression et utiliser les widgets affichés sur la barre de progression.

Le code suivant en montre un exemple.

import time
import progressbar

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

La progressbar2 existe également en Python et est un fork de la progressbar. Il est extrêmement populaire en raison de ses fonctionnalités puissantes et personnalisables. Il prend également en charge les instructions d’impression avec la barre de progression. En revanche, ce module n’a pas été maintenu depuis des années.

Notez que plus de bibliothèques sont disponibles comme alive-progress, progress qui peuvent aider à faire les barres de progression, mais ces deux sont les plus fréquemment utilisées. La seule différence entre eux réside dans les animations et autres personnalisations qu’offrent ces bibliothèques.

Créez votre propre fonction en Python pour créer des barres de progression

Nous pouvons également créer une fonction simple qui peut ressembler à une barre de progression. Le code ci-dessous implémente cela.

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)

Production:

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

Nous calculons le nombre total d’itérations requises, et à chaque itération, nous incrémentons le symbole # et l’imprimons.

Auteur: Manav Narula
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