Maison >développement back-end >Tutoriel Python >Comment créer une barre de progression de texte dans votre terminal à l'aide de Python ?

Comment créer une barre de progression de texte dans votre terminal à l'aide de Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-02 17:26:12681parcourir

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

Barre de progression du texte dans le terminal avec caractères de bloc

Introduction

La création d'une barre de progression dans le terminal peut grandement améliorer l'expérience utilisateur en fournissant un visuel représentation de l’avancement d’une tâche. Cependant, maintenir l’intégrité des sorties précédentes de la console lors de la mise à jour de la barre de progression peut s’avérer un défi. Cet article explique comment créer une barre de progression en Python tout en préservant le texte précédent.

Solution : fonction de barre de progression personnalisée

Voici une fonction de barre de progression réutilisable qui résout le problème :

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

Paramètres de fonction :

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

Utilisation :

Pour utiliser la barre de progression, appeler la fonction dans une boucle :

total_items = 100

for item in range(total_items):
    # Do your processing here...
    printProgressBar(item + 1, total_items)

Version à appel unique :

Pour un cas d'utilisation simplifié, considérez cette version à appel unique de la barre de progression :

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...

Cette version ne nécessite aucun appel initial pour définir la barre de progression à 0 % et accepte les itérables en entrée.

Python 2 Compatibilité :

Pour la compatibilité Python 2, utilisez le code suivant au lieu du formatage de chaîne Python 3 :

print('\r%s |%s| %s%% %s' % (prefix, bar, percent, suffix), end=printEnd)

Conclusion :

En tirant parti des fonctions fournies, vous pouvez sans effort intégrez une barre de progression de texte dans vos applications console tout en évitant l'effacement du texte précédent. Les paramètres personnalisables permettent une apparence de barre de progression sur mesure qui répond à vos besoins spécifiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn