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

Patricia Arquette
Libérer: 2024-11-03 14:51:30
original
143 Les gens l'ont consulté

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()
Copier après la connexion

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()
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!