Maison >développement back-end >Tutoriel Python >Comment puis-je créer une barre de progression de texte dans le terminal à l'aide de Python ?
Trouver une méthode appropriée pour visualiser la progression du téléchargement et du téléchargement dans le terminal sans effacer la sortie précédente peut être une tâche courante. Cet article explore les solutions Python pour créer une barre de progression ou une visualisation similaire qui s'affiche sur la console tout en préservant la sortie antérieure du programme.
Pour une barre de progression à usage général, vous peut utiliser la fonction Python suivante :
def printProgressBar(iteration, total, prefix='', suffix='', decimals=1, length=100, fill='█', printEnd='\r'): """ Call in a loop to create a terminal progress bar @params: iteration - Required : current iteration (Int) total - Required : total iterations (Int) prefix - Optional : prefix string (Str) suffix - Optional : suffix string (Str) decimals - Optional : positive number of decimals in percent complete (Int) length - Optional : character length of bar (Int) fill - Optional : bar fill character (Str) printEnd - Optional : end character (e.g. "\r", "\r\n") (Str) """ percent = ("{0:.{dec}f}".format(100 * (iteration / float(total)), dec=decimals)) filledLength = int(length * iteration / total) bar = fill * filledLength + '-' * (length - filledLength) print(f'\r{prefix} |{bar}| {percent}% {suffix}', end=printEnd) if iteration == total: print()
# A List of Items items = list(range(0, 57)) l = len(items) printProgressBar(0, l, prefix='Progress:', suffix='Complete', length=50) for i, item in enumerate(items): # Do stuff... # Update Progress Bar printProgressBar(i + 1, l, prefix='Progress:', suffix='Complete', length=50)
def progressBar(iterable, prefix='', suffix='', decimals=1, length=100, fill='█', printEnd='\r'): """ Call in a loop to create a terminal progress bar @params: iterable - Required : iterable object (Iterable) prefix - Optional : prefix string (Str) suffix - Optional : suffix string (Str) decimals - Optional : positive number of decimals in percent complete (Int) length - Optional : character length of bar (Int) fill - Optional : bar fill character (Str) printEnd - Optional : end character (e.g. "\r", "\r\n") (Str) """ total = len(iterable) def printProgressBar(iteration): percent = ("{0:.{dec}f}".format(100 * (iteration / float(total)), dec=decimals)) 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()
Pour la compatibilité avec Python 2, ajoutez ce qui suit en haut de votre script :
# -*- coding: utf-8 -*-
Remplacez Python 3 formatage de chaîne dans la fonction de barre de progression avec ce qui suit :
print('%\r%s |%s| %s%% %s' % (prefix, bar, percent, suffix), end=printEnd)
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!