一、PythonProgressBar簡介
1、PythonProgressBar是一個Python庫,可以讓用戶在控制台中顯示進度條,並提供了豐富的樣式選擇和自定義操作方式。
2、PythonProgressBar基於Python標準庫中的”sys.stdout”標準輸出進行開發,讓用戶可以在控制台中輕鬆顯示進度條以及輸出文本信息。
3、PythonProgressBar提供豐富的樣式選擇,在保證易讀性和美觀性的前提下,用戶可以根據需要選擇不同的進度條樣式。
二、PythonProgressBar的基本使用
1、安裝PythonProgressBar
!pip install progressbar2、引入progressbar模塊
import progressbar3、構建進度條對象
bar = progressbar.ProgressBar()4、使用進度條對象進行迭代操作
for i in bar(range(10)):
# do something...如上述代碼所示,在構建了進度條對象之後,用戶可以在其後進行任何帶有可迭代對象的循環操作,PythonProgressBar會自動根據循環進度進行更新進度條顯示狀態。
三、PythonProgressBar的高級用法
1、修改進度條的樣式
bar = progressbar.ProgressBar(widgets=[
progressbar.DynamicMessage('loss'),
progressbar.Percentage(),
progressbar.Bar(),
progressbar.Timer(),
progressbar.AdaptiveETA(),
])如上述代碼所示,用戶可以通過widgets參數指定進度條的樣式,其中”DynamicMessage”表示動態顯示一些文本信息,”Percentage”表示百分比進度,”Bar”表示進度條,”Timer”表示計時器,”AdaptiveETA”表示估計剩餘時間。
2、使用PythonProgressBar進行多線程操作
import threading
def do_something(bar):
for i in bar(range(10)):
# do something...
bar = progressbar.ProgressBar()
threads = []
for i in range(4):
t = threading.Thread(target=do_something, args=(bar,))
threads.append(t)
t.start()
for t in threads:
t.join()如上述代碼所示,PythonProgressBar也可以和多線程結合使用,用戶可以在多個線程中共享同一個進度條對象,通過PythonProgressBar的自動計算進度,保證顯示的準確性。
四、PythonProgressBar應用案例
1、使用PythonProgressBar顯示數據加載進度
import pandas as pd
data = pd.read_csv('data.csv')
bar = progressbar.ProgressBar(max_value=len(data))
for i, row in data.iterrows():
# do something...
bar.update(i+1)如上述代碼所示,用戶可以在數據分析過程中,使用PythonProgressBar顯示數據加載的進度,讓用戶了解程序運行的進度。
2、使用PythonProgressBar顯示計算進度
x, y = some_arrays()
bar = progressbar.ProgressBar(max_value=len(x)*len(y))
for i, xi in enumerate(x):
for j, yj in enumerate(y):
# do something...
bar.update(i * len(y) + j + 1)如上述代碼所示,用戶可以在計算過程中,使用PythonProgressBar顯示計算進度,讓用戶了解程序運行的進度。
五、PythonProgressBar的優缺點
1、優點:
① PythonProgressBar簡單易用,不需要額外設置輸出顯示區域。
② PythonProgressBar支持豐富的樣式選擇,保證了顯示效果的美觀性和易讀性。
③ PythonProgressBar支持多線程操作,可以在多線程中共享同一個進度條對象。
2、缺點:
① PythonProgressBar的顯示位置受限於Python標準輸出,無法在其他窗口中顯示進度條。
② PythonProgressBar的顯示效果受限於控制台字體和顏色設置,不能完全自定義。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/182979.html
微信掃一掃
支付寶掃一掃