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使用urllib模块和pyquery实现阿里巴巴排名查询
Jan 16 Python
Python的净值数据接口调用示例分享
Mar 15 Python
Pycharm技巧之代码跳转该如何回退
Jul 16 Python
读取本地json文件,解析json(实例讲解)
Dec 06 Python
python如何实现反向迭代
Mar 20 Python
linux下python使用sendmail发送邮件
May 22 Python
python对象与json相互转换的方法
May 07 Python
Python流程控制常用工具详解
Feb 24 Python
Python 解析简单的XML数据
Jul 24 Python
Python如何截图保存的三种方法(小结)
Sep 01 Python
Python xlrd/xlwt 创建excel文件及常用操作
Sep 24 Python
Python socket如何解析HTTP请求内容
Feb 12 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实现的下载css文件中的图片的代码
2010/02/08 PHP
php下使用SimpleXML 处理XML 文件
2010/02/27 PHP
php使用CURL伪造IP和来源实例详解
2015/01/15 PHP
php多线程实现方法及用法实例详解
2015/10/26 PHP
详解PHP匿名函数与注意事项
2016/03/29 PHP
PHP 数组黑名单/白名单实例代码详解
2019/06/04 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
2019/10/13 PHP
关于PhpStorm设置点击编辑文件自动定位源文件的实现方式
2020/12/30 PHP
js 判断浏览器类型 去全角、半角空格 自动关闭当前窗口
2009/04/10 Javascript
三级下拉菜单的js实现代码
2011/05/23 Javascript
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
node.js下LDAP查询实例分享
2015/09/30 Javascript
bootstrap datetimepicker2.3.11时间插件使用
2016/11/19 Javascript
localStorage实现便签小程序
2016/11/28 Javascript
Javascript Event(事件)的传播与冒泡
2017/01/23 Javascript
React入门教程之Hello World以及环境搭建详解
2017/07/11 Javascript
vue做网页开场视频的实例代码
2017/10/20 Javascript
微信小程序基础教程之worker线程的使用方法
2019/07/15 Javascript
javascript实现摄像头拍照预览
2019/09/30 Javascript
JavaScript制作3D旋转相册
2020/08/02 Javascript
JS中数组实现代码(倒序遍历数组,数组连接字符串)
2019/12/29 Javascript
es6函数中的作用域实例分析
2020/04/18 Javascript
Javascript异步执行不按顺序解决方案
2020/04/30 Javascript
JS实现多选框的操作
2020/06/24 Javascript
SQLite3中文编码 Python的实现
2017/01/11 Python
python 美化输出信息的实例
2018/10/15 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
2019/08/27 Python
python库matplotlib绘制坐标图
2019/10/18 Python
django rest framework serializer返回时间自动格式化方法
2020/03/31 Python
基于Python+QT的gui程序开发实现
2020/07/03 Python
外科实习自我鉴定
2013/10/06 职场文书
餐饮服务食品安全责任书
2014/07/25 职场文书
暑期社会实践心得体会
2014/09/02 职场文书
2014年财务个人工作总结
2014/12/08 职场文书
奖励通知
2015/04/22 职场文书
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技