1. 程式人生 > >python-progress-進度條

python-progress-進度條

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

 Updates the ProgressBar to a new value。

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() :進度百分比。