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