Heim >Backend-Entwicklung >Python-Tutorial >Wie ersetze ich die Konsolenausgabe durch einen Zähler und eine Fortschrittsleiste in Python?

Wie ersetze ich die Konsolenausgabe durch einen Zähler und eine Fortschrittsleiste in Python?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-03 14:51:30210Durchsuche

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

Ersetzen der Konsolenausgabe in Python

Die Vielseitigkeit von Python ermöglicht die Anpassung der benutzerdefinierten Konsolenausgabe an spezifische Anforderungen. Eine gängige Technik ist das Erstellen dynamischer Konsolenzähler, die an Ort und Stelle aktualisiert werden.

Abfrage: Ausgabe durch einen Zähler ersetzen

Um die Konsolenausgabe durch einen Fortschrittszähler zu ersetzen, kann eine Schleife ausgeführt werden kann so geändert werden, dass nach der Durchführung jeder Iteration eine Statusmeldung angezeigt wird. Im Gegensatz zur vorherigen Ausgabe, die für jeden Status eine neue Zeile enthielt, aktualisierte dieser Zähler nur die zuletzt angezeigte Zeile.

Lösung: Verwendung von „r“

Eine einfache Die Lösung besteht darin, vor der neuen Statusmeldung ein Wagenrücklaufzeichen „r“ einzufügen und jegliche Zeilenumbrüche zu vermeiden. Dadurch wird sichergestellt, dass die Zeichenfolge nicht kürzer wird, was es zu einem praktikablen Ansatz macht, wenn erwartet wird, dass die Länge der Zeichenfolge konstant bleibt.

Zum Beispiel:

import sys

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

Erweiterte Lösung : Fortschrittsbalken

Für anspruchsvollere Fortschrittsanzeigen kann ein Fortschrittsbalken implementiert werden. Der folgende Code stellt eine einfache Fortschrittsbalkenfunktion bereit:

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

Die start_progress-Funktion initialisiert den Fortschrittsbalken mit einer Titelbeschreibung. progress(x) aktualisiert den Balken mit dem Prozentsatz der Fertigstellung (x). Abschließend beendet end_progress die Fortschrittsanzeige.

Das obige ist der detaillierte Inhalt vonWie ersetze ich die Konsolenausgabe durch einen Zähler und eine Fortschrittsleiste in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Zu Django oder zu DjangoREST?Nächster Artikel:Zu Django oder zu DjangoREST?