Python进度条的使用


Posted in Python onMay 17, 2021

在使用Python处理比较耗时操作的时候,为了便于观察处理进度,就需要通过进度条将处理情况进行可视化展示,以便我们能够及时了解情况。这对于第三方库非常丰富的Python来说,并不是什么难事。

tqdm就能非常完美的支持和解决这个问题,它是一个快速、扩展性强的进度条工具库。用户只需要封装任意的迭代器 tqdm(iterator),就能在 Python 长循环中添加一个进度提示信息。

官网:

https://github.com/tqdm/tqdm

安装:

pip install tqdm

基于迭代器的使用方式

【例子】使用tqdm(iterator)

import time
from tqdm import tqdm

for i in tqdm(range(100)):
    time.sleep(0.05)

for i in tqdm(list('abcdefgh')):
    time.sleep(0.05)
    
for i in tqdm(range(100), desc='Processing'):
    time.sleep(0.05)

Python进度条的使用

【例子】trange(N)tqdm(range(N))的一种简单写法

import time
from tqdm import tqdm, trange

for i in trange(100):
    time.sleep(0.05)

Python进度条的使用

【例子】循环外的实例化允许手动控制tqdm()

import time
from tqdm import tqdm

pbar = tqdm(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'])
for i in pbar:
    pbar.set_description('Processing ' + i)
    time.sleep(0.2)

Python进度条的使用

【例子】

import time
from tqdm import tqdm
from random import random, randint

with tqdm(range(100)) as pbar:
    for i in pbar:
        pbar.set_description("GEN %d" % i)
        pbar.set_postfix({'loss': random(), 'gen': randint(1, 999)})
        time.sleep(0.1)

Python进度条的使用

基于手动进行更新

【例子】使用with语句手动控制tqdm()更新

import time
from tqdm import tqdm

with tqdm(total=200) as pbar:
    pbar.set_description("Processing")
    for i in range(20):
        time.sleep(0.1)
        pbar.update(10)

Python进度条的使用

如果提供了可选变量total(或带有len()的iterable),则会显示预测统计信息。

with也是可选的(可以将tqdm()赋值给变量,但在这种情况下,不要忘记在结尾处delclose()

import time
from tqdm import tqdm

pbar = tqdm(total=200)
pbar.set_description("Processing")
for i in range(20):
    time.sleep(0.1)
    pbar.update(10)
    
pbar.close()

Python进度条的使用

tqdm模块参数说明

class tqdm(Comparable):
    """
    Decorate an iterable object, returning an iterator which acts exactly
    like the original iterable, but prints a dynamically updating
    progressbar every time a value is requested.
    """
    
    def set_description(self, desc=None, refresh=True):
    def set_postfix(self, ordered_dict=None, refresh=True, **kwargs):
    def update(self, n=1):
    def close(self):
  • set_description()函数:用于设置/修改进度条的说明。
  • set_postfix()函数:用于设置/修改后缀(附加统计信息)。
  • update()函数:手动更新进度条。
  • close()函数:清除并关闭progressbar。
class tqdm(Comparable):
    """
    Decorate an iterable object, returning an iterator which acts exactly
    like the original iterable, but prints a dynamically updating
    progressbar every time a value is requested.
    """
    
    def __init__(self, iterable=None, desc=None, total=None, leave=False,
           file=sys.stderr, ncols=None, mininterval=0.1,
           maxinterval=10.0, miniters=None, ascii=None,
           disable=False, unit='it', unit_scale=False,
           dynamic_ncols=False, smoothing=0.3, nested=False,
           bar_format=None, initial=0, gui=False):
  • iterable:可迭代的对象,在手动更新时不需要进行设置。
  • desc:字符串,左边进度条描述文字。
  • total:总的项目数。
  • leave:bool值,迭代完成后是否保留进度条。
  • file:输出指向位置,默认是终端, 一般不需要设置。
  • ncols:调整进度条宽度,默认是根据环境自动调节长度,如果设置为0,就没有进度条,只有输出的信息。
  • unit:描述处理项目的文字,默认是'it',例如: 100 it/s,处理照片的话设置为'img' ,则为 100 img/s。
  • unit_scale:自动根据国际标准进行项目处理速度单位的换算,例如 100000 it/s >> 100k it/s。

【例子】

import time
from tqdm import tqdm

with tqdm(total=100000, desc='Example', leave=True, ncols=100, unit='B', unit_scale=True) as pbar:
    for i in range(10):
        time.sleep(0.5)
        pbar.update(10000)

Python进度条的使用

tqdm源自阿拉伯语单词taqaddum,意思是“progress(进展)”,是python中一个快速、扩展性强的进度条工具库,能让我们了解代码的运行进度,也能让我们的运行结果看起来显得更加美观而又高大上!! 喜欢的小伙伴赶紧用起来吧!!

到此这篇关于Python进度条的使用的文章就介绍到这了,更多相关Python进度条内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python del()函数用法
Mar 24 Python
天翼开放平台免费短信验证码接口使用实例
Dec 18 Python
跟老齐学Python之从if开始语句的征程
Sep 14 Python
回调函数的意义以及python实现实例
Jun 20 Python
pyqt5 使用label控件实时显示时间的实例
Jun 14 Python
python读取并定位excel数据坐标系详解
Jun 26 Python
Django模板Templates使用方法详解
Jul 19 Python
python运用pygame库实现双人弹球小游戏
Nov 25 Python
TensorFlow2.0矩阵与向量的加减乘实例
Feb 07 Python
python绘制封闭多边形教程
Feb 18 Python
图解Python中深浅copy(通俗易懂)
Sep 03 Python
python playwright 自动等待和断言详解
Nov 27 Python
Python包管理工具pip的15 个使用小技巧
Python中json.dumps()函数的使用解析
May 17 #Python
Python中threading库实现线程锁与释放锁
Python中Cookies导出某站用户数据的方法
May 17 #Python
Python 高级库15 个让新手爱不释手(推荐)
Python带你从浅入深探究Tuple(基础篇)
May 15 #Python
Python中zipfile压缩包模块的使用
You might like
php获取文章上一页与下一页的方法
2014/12/01 PHP
thinkphp分页集成实例
2017/07/24 PHP
phpstorm 配置xdebug的示例代码
2019/03/31 PHP
Laravel框架查询构造器简单示例
2019/05/08 PHP
jquery api参考 visualjquery 中国线路 速度快
2007/11/30 Javascript
js 实现浏览历史记录示例
2014/04/20 Javascript
jquery实现带缩略图的可定制高度画廊效果(5种)
2015/08/28 Javascript
javascript:void(0)点击登录没反应怎么解决
2015/11/13 Javascript
详细分析Javascript中创建对象的四种方式
2016/08/17 Javascript
新闻上下滚动jquery 超简洁(必看篇)
2017/01/21 Javascript
HTML中使背景图片自适应浏览器大小实例详解
2017/04/06 Javascript
使用jQuery和ajax代替iframe的方法(详解)
2017/04/12 jQuery
VueJS组件之间通过props交互及验证的方式
2017/09/04 Javascript
Vue实战之vue登录验证的实现代码
2017/10/31 Javascript
最新Javascript程序员面试试题和解题方法
2017/11/23 Javascript
jQuery实现的简单手风琴效果示例
2018/08/29 jQuery
angular.js实现列表orderby排序的方法
2018/10/02 Javascript
element-ui中Table表格省市区合并单元格的方法实现
2019/08/07 Javascript
JavaScript canvas实现跟随鼠标事件
2020/02/10 Javascript
使用 Jest 和 Supertest 进行接口端点测试实例详解
2020/04/25 Javascript
js实现九宫格布局效果
2020/05/28 Javascript
vant自定义二级菜单操作
2020/11/02 Javascript
[03:39]2015国际邀请赛主赛事首日精彩回顾
2015/08/05 DOTA
轻松掌握python设计模式之策略模式
2016/11/18 Python
python爬取个性签名的方法
2018/06/17 Python
Python 中的range(),以及列表切片方法
2018/07/02 Python
Python3 读取Word文件方式
2020/02/13 Python
python中os包的用法
2020/06/01 Python
Python限制内存和CPU使用量的方法(Unix系统适用)
2020/08/04 Python
使用Python将xmind脑图转成excel用例的实现代码(一)
2020/10/12 Python
Python 转移文件至云对象存储的方法
2021/02/07 Python
文明家庭先进事迹材
2014/01/27 职场文书
会计专业大学生求职信范文
2014/01/28 职场文书
《在山的那边》教学反思
2014/02/23 职场文书
毕业生评语大全
2015/01/04 职场文书
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python