Maison >développement back-end >Tutoriel Python >Comment remplacer la sortie de la console par un compteur et une barre de progression en Python ?

Comment remplacer la sortie de la console par un compteur et une barre de progression en Python ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-03 14:51:30220parcourir

How to Replace Console Output with a Counter and Progress Bar in Python?

Remplacement de la sortie de la console en Python

La nature polyvalente de Python permet d'adapter la sortie de la console personnalisée à des besoins spécifiques. Une technique courante consiste à créer des compteurs de console dynamiques qui se mettent à jour sur place.

Requête : remplacement de la sortie par un compteur

Pour remplacer la sortie de la console par un compteur de progression, une boucle peut être modifié pour afficher un message d'état après avoir effectué chaque itération. Contrairement à la sortie précédente, qui incluait une nouvelle ligne pour chaque statut, ce compteur mettrait à jour uniquement la dernière ligne affichée.

Solution : Utiliser 'r'

Une simple La solution consiste à insérer un caractère de retour chariot "r" avant le nouveau message d'état et à éviter tout caractère de nouvelle ligne. Cela garantit que la chaîne ne devient pas plus courte, ce qui en fait une approche viable si l'on s'attend à ce que la chaîne reste constante en longueur.

Par exemple :

import sys

for i in range(5):
    sys.stdout.write("\rDoing thing %d" % i)
    sys.stdout.flush()

Solution améliorée : Barre de progression

Pour des affichages de progression plus sophistiqués, une barre de progression peut être implémentée. Le code suivant fournit une fonction de barre de progression simple :

def start_progress(title):
    sys.stdout.write(title + ": [" + "-" * 40 + "]" + chr(8) * 41)
    sys.stdout.flush()
    progress_x = 0

def progress(x):
    global progress_x
    x = int(x * 40 // 100)
    sys.stdout.write("#" * (x - progress_x))
    sys.stdout.flush()
    progress_x = x

def end_progress():
    sys.stdout.write("#" * (40 - progress_x) + "]\n")
    sys.stdout.flush()

La fonction start_progress initialise la barre de progression avec une description de titre. progress(x) met à jour la barre avec le pourcentage d'achèvement (x). Enfin, end_progress termine l'affichage de la progression.

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
Article précédent:Vers Django ou DjangoREST ?Article suivant:Vers Django ou DjangoREST ?