Heim > Artikel > Backend-Entwicklung > So implementieren Sie einen Fortschrittsbalken mithilfe der Fortschrittsbibliothek in Python
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:
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.max: Der Fortschrittsbalken ist in mehrere gleiche Teile unterteilt, z. B. 100.
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.
Klicken Sie über PyCharm auf die Schaltfläche „Ausführen“ und dann auf „Konfigurationen bearbeiten“, um die Seite „Ausführungskonfiguration“ aufzurufen.
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.
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.
Beim 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(): 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 Fortschrittsbalken
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.
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)
运行效果:
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)
运行效果:
接下来将上面介绍的所有种类的进度条全部放到一起,代码如下:
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()
运行效果:
运行代码后可以得出所有种类的进度条,与文章开头从官网截的图效果相同。
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!