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

首先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)

运行结果如图:

原文发布于微信公众号 - Python小屋(Python_xiaowu)

原文发表时间:2017-05-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏coder修行路

Django进阶之CSRF

 简介 django为用户实现防止跨站请求伪造的功能,通过中间件 django.middleware.csrf.CsrfViewMiddleware 来完成。而...

2235
来自专栏魏艾斯博客www.vpsss.net

如何创建.htaccess 文件

关于.htaccess 文件,一般用于虚拟主机中,使用 VPS 建站的可以忽略了。对于使用虚拟主机建站的朋友来说.htaccess 文件可以用作伪静态化设置和 ...

4638
来自专栏专注数据中心高性能网络技术研发

Linux申请大页内存(mmap)

---- 1.为什么要使用大页内存   了解操作系统内存管理的人一般都知道操作系统对内存采用多级页表和分页进行管理,操作系统每个页默认大小为4KB。如果进程使用...

1.2K10
来自专栏高性能服务器开发

+从零实现一款12306刷票软件1.2

当然,这里需要说明一下的就是,由于全国的火车站点信息文件比较大,我们程序解析起来时间较长,加上火车站编码信息并不是经常变动,所以,我们我们没必要每次都下载这个s...

2052
来自专栏Kubernetes

Docker容器内的监控命令数据修正思路

思路概述:编写linux c代码,生成对应的动态链接库(so文件),通过LDPRELOAD实现对/proc文件系统访问的劫持。劫持之后,实现容器内正确的数据计算...

3658
来自专栏扎心了老铁

Linux内存(手动释放cache)

项目的扩容申请了一台机器,到手之后看一下机器的指标,看到内存使用情况是这样的。 1、查看内存 free $ free -h total...

6788
来自专栏张善友的专栏

在 Windows 上安装Rabbit MQ 指南

rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统。他遵循Mozilla Public License开源协议。采用 Erlang 实现...

2239
来自专栏NetCore

Identity Service - 解析微软微服务架构eShopOnContainers(二)

接上一篇,众所周知一个网站的用户登录是非常重要,一站式的登录(SSO)也成了大家讨论的热点。微软在这个Demo中,把登录单独拉了出来,形成了一个Service,...

2695
来自专栏程序员的SOD蜜

使用“消息服务框架”(MSF)实现分布式事务的三阶段提交协议(电商创建订单的示例)

1,示例解决方案介绍 在上一篇 《消息服务框架(MSF)应用实例之分布式事务三阶段提交协议的实现》中,我们分析了分布式事务的三阶段提交协议的原理,现在我们来看看...

3379
来自专栏自由而无用的灵魂的碎碎念

用IE打开Reporting Service时提示权限不足的解决方法

在IE中打开http://localhost/ReportServer时,经常提示“为用户“*”授予的权限不足,无法执行此操作。 (rsAccessDenied...

1414

扫码关注云+社区

领取腾讯云代金券