Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie einen Fortschrittsbalken mithilfe der Fortschrittsbibliothek in Python

So implementieren Sie einen Fortschrittsbalken mithilfe der Fortschrittsbibliothek in Python

王林
王林nach vorne
2023-04-25 09:01:061873Durchsuche

Installation und Einführung der Progress-Bibliothek

Progress ist eine Python-Bibliothek eines Drittanbieters. Führen Sie den Befehl pip im Terminal aus, um sie zu installieren.

pip install progress

2.Anzeige des Fortschrittsbalkeneffekts

Auf der offiziellen Website können Sie die verschiedenen Fortschrittsbalkeneffekte sehen, die der Fortschritt erzielen kann, wie in der folgenden Animation gezeigt. „progress“ implementiert den Fortschrittsbalken Objekt und verarbeiten Sie dann das Geschäft in einer Schleife. Rufen Sie die Methode next () auf und rufen Sie nach Abschluss der Verarbeitung die Methode finish () auf, um den Fortschrittsbalken zu beenden. Die Hauptparameter der

Bar-Klasse sind:

So implementieren Sie einen Fortschrittsbalken mithilfe der Fortschrittsbibliothek in Python

message: Die vom Fortschrittsbalken angezeigte Nachricht. Dieser Parameter kann standardmäßig mithilfe von Positionsparametern an Bar übergeben werden.

Breite: Ändern Sie die Breite des Fortschrittsbalkens. Der Standardwert ist 32.

So implementieren Sie einen Fortschrittsbalken mithilfe der Fortschrittsbibliothek in Python

max: Der Fortschrittsbalken ist in mehrere gleiche Teile unterteilt, z. B. 100.

    Suffix: Das Format der Fortschrittsprozentsatzanzeige, die Standardeinstellung ist „%(index)d/%(max)d’.
  • fill: Was zum Füllen des Fortschrittsbalkens verwendet werden soll, der Standardwert ist ’#’.
  • empty_fill: Was zum Füllen des entladenen Fortschrittsbalkens verwendet werden soll, der Standardbereich ist ’.
  • bar_prefix: Fortschrittsbalkenpräfix, Standardeinstellung |’
  • bar_suffix: Fortschrittsbalkensuffix, Standard ’|.
  • Farbe: Die Farbe des Fortschrittsbalkens, standardmäßig Keine.
  • PyCharm-Fortschrittsbalkenanzeigeproblem gelöst
  • Die meisten Python-Programmierer verwenden PyCharm. Wenn der Fortschrittsbalkeneffekt nach dem Ausführen des Fortschrittsbalkencodes in PyCharm nicht angezeigt wird, können Sie die folgenden Schritte ausführen, um ihn einzurichten und dann den Code auszuführen wieder.

  • Schritt 1.

    Klicken Sie über PyCharm auf die Schaltfläche „Ausführen“ und dann auf „Konfigurationen bearbeiten“, um die Seite „Ausführungskonfiguration“ aufzurufen.

  • Schritt 2.
Aktivieren Sie die Option „Terminal in der Ausgabekonsole emulieren“ und führen Sie den Code erneut aus.

Aufmerksame Freunde sollten bemerkt haben, dass sich nach der Ausführung des oben genannten Fortschrittsbarcodes in PyCharm eine Reihe seltsamer Zeichen unter dem Fortschrittsbalken befindet: ‘?[?25h’, verwenden Sie das Skript python progress_demo im Terminal .py führt denselben Code ohne diese Symbolfolge aus. Diese Zeichenfolge stellt den Cursor dar. Nach der Ausführung in PyCharm wird der Cursor auf der Konsole ausgegeben. Die Lösung lautet: Halten Sie die Strg-Taste gedrückt, klicken Sie auf den Namen der importierten Bar-Klasse, springen Sie zum Quellcode bar.py, halten Sie dann die Strg-Taste gedrückt und klicken Sie auf die von der Bar-Klasse geerbte Progress-Klasse, geben Sie __init__.py ein Datei der Fortschrittsbibliothek und ändern Sie die Variable SHOW_CURSOR in dieser Datei in eine leere Zeichenfolge.

So implementieren Sie einen Fortschrittsbalken mithilfe der Fortschrittsbibliothek in Python

Nach dem Ändern des Quellcodes und dem anschließenden erneuten Ausführen des Codes wird der Cursor nicht mehr angezeigt und die Zeichenfolge wird nicht mehr angezeigt.

So implementieren Sie einen Fortschrittsbalken mithilfe der Fortschrittsbibliothek in PythonBeim Ausführen des Fortschrittsbalkens in PyChram können auch andere Anzeigeprobleme auftreten. Wenn Probleme auftreten, wird empfohlen, das Skript auszuführen der Code.

Zwei weitere Möglichkeiten, Fortschrittsbalkencode zu schreiben:

Verwenden Sie den with …-Kontextmanager, um den Fortschrittsbalken zu schreiben ist abgeschlossen.

# coding=utf-8
from progress.bar import Bar
import time

# 创建Bar类的实例
bar = Bar('MyProcess:', max=100)
# 循环处理某业务,调用bar对象的next()方法,循环次数等于max
for _ in range(100):
	# Do some work
    time.sleep(0.05)
    bar.next()
# 循环完成后调用finish()方法
bar.finish()

2. Verwenden Sie die Methode iter(): So implementieren Sie einen Fortschrittsbalken mithilfe der Fortschrittsbibliothek in Python Die Verwendung der Methode iter() kann die Arbeit des Iterators vereinfachen und es ist nicht erforderlich, die Methode next() aufzurufen.

with Bar('Processing', max=20) as bar:
    for i in range(20):
        time.sleep(0.05)
        bar.next()

Die Ausführungsergebnisse dieser beiden Implementierungsmethoden sind die gleichen wie die der ursprünglichen Implementierungsmethode.

Implementieren Sie weitere Arten von FortschrittsbalkenSo implementieren Sie einen Fortschrittsbalken mithilfe der Fortschrittsbibliothek in Python

1. Bar-Serie: Im vorherigen Artikel haben Sie auf den Quellcode des Fortschritts geklickt. Sie können sehen, dass die Bar-Klasse von der Progress-Klasse erbt Aus der Infinite-Klasse, der Progress-Klasse und der Infinite-Klasse wurden die Grundfunktionen des Fortschrittsbalkens implementiert.

In bar.py gibt es zusätzlich zur Bar-Klasse 6 Klassen: ChargingBar, FillingSquaresBar, FillingCirclesBar, IncrementalBar, PixelBar und ShadyBar. Sie sind Unterklassen bzw. Enkel der Bar-Klasse bar. In jeder Klasse werden nur die Werte der Variablen suffix, fill, empty_fill, bar_prefix, bar_suffix geändert und der Stil des Fortschrittsbalkens wird geändert.

Die Verwendung ist sehr einfach. Sie müssen nur diese Klassen importieren und Bar im obigen Code durch diese Klassen ersetzen, z. B. FillingSquaresBar.

for i in Bar('Processing').iter(range(100)):
    time.sleep(0.05)
Betriebseffekt:

还可以自己修改上面的参数,设置个性化的进度条,本文暂不扩展,以后有空可以专门写文章介绍。

2. Spinner 系列

progress 库的 spinner.py 中实现了 5 个类,Spinner, PieSpinner, MoonSpinner, LineSpinner, PixelSpinner。

from progress.spinner import Spinner, PieSpinner, MoonSpinner, LineSpinner, PixelSpinner

for i in Spinner('MySpinner:').iter(range(100)):
    time.sleep(0.01)

运行效果:

So implementieren Sie einen Fortschrittsbalken mithilfe der Fortschrittsbibliothek in Python

3.Counter 系列

progress 库的 counter.py 中实现了 4 个类,Counter, Countdown, Stack, Pie。

from progress.counter import Counter, Countdown, Stack, Pie
import time

for i in Counter('Loading:').iter(range(100)):
    time.sleep(0.01)

运行效果:

So implementieren Sie einen Fortschrittsbalken mithilfe der Fortschrittsbibliothek in Python

汇总

接下来将上面介绍的所有种类的进度条全部放到一起,代码如下:

from progress.bar import Bar, ChargingBar, FillingSquaresBar, \
    FillingCirclesBar, IncrementalBar, PixelBar, ShadyBar
from progress.spinner import Spinner, PieSpinner, MoonSpinner, LineSpinner, PixelSpinner
from progress.counter import Counter, Countdown, Stack, Pie
import time
import random

progess_list = [Bar, ChargingBar, FillingSquaresBar, FillingCirclesBar, IncrementalBar,
                PixelBar, ShadyBar, Spinner, PieSpinner, MoonSpinner, LineSpinner,
                PixelSpinner, Counter, Countdown, Stack, Pie]
for P in progess_list:
    for i in P(P.__name__ + ':').iter(range(100)):
        time.sleep(0.01)

bar = IncrementalBar('Random:', suffix='%(index)d%%')
for i in range(100):
    bar.goto(random.randint(0, 100))
    time.sleep(0.01)
bar.finish()

运行效果:

So implementieren Sie einen Fortschrittsbalken mithilfe der Fortschrittsbibliothek in Python

运行代码后可以得出所有种类的进度条,与文章开头从官网截的图效果相同。

Das obige ist der detaillierte Inhalt vonSo implementieren Sie einen Fortschrittsbalken mithilfe der Fortschrittsbibliothek in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen