Python進度條模塊Progressbar
今天突然被問了一個問題:程序在執行中很久不結束是怎麼回事?看不到程序執行的進度,在我們進行大工程的時候的確是一件很頭疼的事,本文讓我們來了解一個很常用的進度條展示小工具——Progressbar。
注:最新版的使用者不要照着GitHub上的官方文檔去操作,文檔信息沒有維護,會出現很多問題。
下載模塊
pip install progressbar
注意:安裝模塊的時候可能會出現warning,耐心等待,總會出現success。
簡單的使用方法
import time
from progressbar import *
total = 1000
def test_func():
time.sleep(0.01)
progress = ProgressBar()
for i in progress(range(1000)):
test_func()
對於簡單的循環函數而言,我們只需要把它加在我們組合了progress方法的循環下就可以了。
我們會看到如下的進度條:
放在循環外定義使用
# -*- coding=utf-8 -*-
from __future__ import division
import sys, time
from progressbar import *
total = 1000
def test_func():
time.sleep(0.01)
bar = ProgressBar().start()
for i in range(1000):
bar.update(int((i / (total - 1)) * 100))
test_func()
bar.finish()
注意:不要忽略了start()和fininsh()否則會出現問題。
多層信息的展示使用
# -*- coding=utf-8 -*-
import time
from progressbar import *
total = 1000
def test_func():
time.sleep(0.01)
widgets = [
'Progress: ',
Percentage(), ' ',
Bar('#'), ' ',
Timer(), ' ',
ETA(), ' ',
FileTransferSpeed()
]
bar = ProgressBar(widgets=widgets, maxval=10 * total).start()
for i in range(total):
bar.update(10 * i + 1)
test_func()
bar.finish()
結果如下:
參數說明:
'Progress: ' :設置進度條前顯示的文字
Percentage() :顯示百分比
Bar('#') :設置進度條形狀
ETA() :顯示預計剩餘時間
Timer() :顯示已用時間