Maison >développement back-end >Tutoriel Python >Comment remplacer la sortie de la console par un compteur et une barre de progression en 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!