Python使用扩展库progressbar显示进度条

2017-05-22 董付国 Python小屋 Python小屋

首先https://pypi.python.org/pypi/progressbar2/3.20.0下载whl文件,然后使用pip进行本地安装。

导入后面代码所需要的库:

import time

import logging

import progressbar


执行下面的代码:

bar = progressbar.ProgressBar()

for i in bar(range(100)):

    time.sleep(0.02)

运行效果如图(文中截图只显示最终运行结果,请自行运行代码观看运行过程,下同):


执行下面的代码:

progressbar.streams.wrap_stderr()

bar = progressbar.ProgressBar()

for i in bar(range(10)):

    logging.error('Got %d', i)

    time.sleep(0.2)

运行结果如图:

如果把上面代码第一行progressbar.streams.wrap_stderr()删除或注释,则运行结果如图:


执行下面的代码:

bar = progressbar.ProgressBar(redirect_stdout=True)

for i in range(10):

    print('Some text', i)

    time.sleep(0.1)

    bar.update((i+1)*10)

运行结果如图:



ProgressBar对象支持with关键字,例如下面的代码:

with ProgressBar(max_value=10) as bar:

    for i in range(10):

        time.sleep(0.1)

        bar.update(i)

运行结果如图:



下面的代码演示了不定长进度条的显示方式:

bar = ProgressBar(max_value=UnknownLength)

for i in range(20):

    time.sleep(0.1)

    bar.update(i)

运行结果如图:



下面的代码演示了如何自定义进度条的显示方式:

bar = ProgressBar(widgets=[

    ' [My ProgressBar] ',

    progressbar.Bar(),

    ' (', progressbar.Timer(),

    '|', progressbar.ETA(), ') '])

for i in bar(range(30)):

    time.sleep(0.1)

运行结果如图:



-------------分割线------------

本周四(5月25日)应邀在CSDN学院分享数据挖掘与分析的第一次直播课(共3次)。CSDN学院精选了录播课程与直播课程,为学习Python 数据挖掘与分析的同学提供从Python入门到数据挖掘、数据 分析,再到实战解析全套内容。本公众号粉丝可获得大幅优惠,进入公众号留言「数据挖掘」即可领取优惠券。