python-progress-進度條
阿新 • • 發佈:2018-12-18
0.摘要
本文主要介紹在python3環境下使用progress庫顯示程式執行進度條。
python3中安裝progress:pip install progressbar2
python2中安裝progress:pip install progressbar
1.三個步驟
progressbar的基礎步驟為:start,update,finish
start(max_value=None, init=True):Starts measuring time, and prints the bar at 0%。
update(value=None, force=False, **kwargs):
finish(end='\n') :Puts the ProgressBar bar in the finished state。
import progressbar def fun(n): if n == 1 or n == 2: return 1 else: return fun(n-1) + fun(n-2) if __name__ == '__main__': p = progressbar.ProgressBar() max_value = 100 p.start(max_value) for n in range(max_value): fun(n+1) p.update(n+1) p.finish()
如果沒有finish步驟,進度條達到100%後自動退出。
2.配置方法
ProgressBar類在例項化的時候,可以通過widgets引數進行進度條樣式設定。
import time import progressbar if __name__ == '__main__': widgets = [ 'My progress1 :',' [', progressbar.Timer(), '] ',progressbar.Bar('&'), ' (', progressbar.ETA(), ') '] p = progressbar.ProgressBar(widgets=widgets) max_value = 100 p.start(max_value) for n in range(max_value): time.sleep(0.001 * n) p.update(n+1) p.finish()
widgets引數設定的是進度條的樣式。進度條顯示的樣式將按照列表中元素的順序進行顯示,類似於print函式。
下面對例子中的widgets引數進行詳細介紹:
顯示出來的進度條正如我們配置的那樣:
以'My progress1 :'打頭;之後'[]'中存放progressbar.Timer();後跟進度條progressbar.Bar('&'),以‘&’作為進度條的符號;以放在括號中的progressbar.ETA()結尾。
關於widgets中可以呼叫的方法很多,這裡只簡單列舉幾個,更多內容詳見:https://pypi.org/project/progressbar2/
- Bar('#') : 呼叫進度條步進框,並以‘#’符號顯示。
- Timer() :已用時間。
- ETA() : 預計剩餘時間。
- Percentage() :進度百分比。