Simple-Progress-Bar

Une barre de progression très simple en Python, copie-collable et personnalisable, aucun import requis.

Regarder sur GitHub

Simple-Progress-Bar

Read in English.


Sommaire

Qu’est-ce que c’est ?

C’est une barre de progression que vous pouvez utiliser dans n’importe quel type de projet en Python, sans avoir besoin d’installer quoique ce soit.

Pourquoi devriez-vous l’utiliser ?

Parce que

À quoi ça ressemble

La barre de progression par défaut ressemble à ceci

default bar

Le code

Voici ce que vous avez besoin de copier-coller dans votre code

import sys

def progress_bar(count,total,size=100,sides="[]",full='#',empty='.',prefix=""):
    x = int(size*count/total)
    sys.stdout.write("\r" + prefix + sides[0] + full*x + empty*(size-x) + sides[1] + ' ' + str(count).rjust(len(str(total)),' ')+"/"+str(total))
    if count==total:
        sys.stdout.write("\n")

Utilisation

Voici un exemple de comment l’utiliser

for i in range(1,101):
	progress_bar(count=i,total=100)
    time.sleep(0.01) # place you job here

Notez que pour un meilleur résultat, le dernier appel doit être fait avec count et total étant égaux.

Qu’est-ce qui est personnalisable ?

Vous pouvez personnaliser le préfixe, les caractères sur les côtés, les caractères de la partie achevée et de la partie restante ainsi que la largeur de la barre, par exemple

progress_bar(count=i,total=100,size=40,sides="||",full='█',empty=' ',prefix="working...")

donne la barre suivante

custom bar

Qu’est-ce qui n’est pas personnalisable ?

Un préfixe dynamique comme dans les système Unix, les couleurs et l’avancement au format i/n ne peuvent être modifiés sans changer le code de la fonction. N’hésitez pas à faire un fork du projet ou créer une pull request si vous souhaitez ajouter ces fonctionnalités.

Spécifications

Vous pouvez trouver ces spécifications dans la docstring de la fonction dans le code source

Licence

Ce projet est un petit projet. Le code source est donné librement à la communauté GitHub, sous la seule licence MIT, qui n’est pas trop restrictive.