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 相关文章推荐
Hadoop中的Python框架的使用指南
Apr 22 Python
浅谈python import引入不同路径下的模块
Jul 11 Python
Python动刷新抢12306火车票的代码(附源码)
Jan 24 Python
Python使用pymysql从MySQL数据库中读出数据的方法
Jul 25 Python
python语音识别实践之百度语音API
Aug 30 Python
浅谈Python基础—判断和循环
Mar 22 Python
jenkins配置python脚本定时任务过程图解
Oct 29 Python
django数据模型on_delete, db_constraint的使用详解
Dec 24 Python
浅析matlab中imadjust函数
Feb 27 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
Feb 29 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
Mar 14 Python
PyTorch安装与基本使用详解
Aug 31 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+MySql编写聊天室
2006/10/09 PHP
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
2011/12/25 PHP
PHP-Java-Bridge使用笔记
2014/09/22 PHP
如何使用纯PHP实现定时器任务(Timer)
2015/07/31 PHP
总结PHP中DateTime的常用方法
2016/08/11 PHP
JS获取浏览器版本及名称实现函数
2013/04/02 Javascript
JavaScript 创建运动框架的实现代码
2013/05/08 Javascript
js获取当月最后一天实例代码
2013/11/19 Javascript
jQuery的animate函数实现图文切换动画效果
2015/05/03 Javascript
jquery中ready()函数执行的时机和window的load事件比较
2015/06/22 Javascript
总结jQuery插件开发中的一些要点
2016/05/16 Javascript
对Js OOP编程 创建对象的一些全面理解
2016/07/26 Javascript
详解angular element()方法使用
2017/04/08 Javascript
微信小程序异步处理详解
2017/11/10 Javascript
JavaScript原生实现观察者模式的示例
2017/12/15 Javascript
微信小程序实现抖音播放效果的实例代码
2020/04/11 Javascript
uniapp实现可以左右滑动导航栏
2020/10/21 Javascript
Python中安装easy_install的方法
2018/11/18 Python
浅谈pytorch池化maxpool2D注意事项
2020/02/18 Python
简单了解Python多态与属性运行原理
2020/06/15 Python
python中id函数运行方式
2020/07/03 Python
Python getsizeof()和getsize()区分详解
2020/11/20 Python
尤妮佳moony海外旗舰店:日本殿堂级纸尿裤品牌
2018/02/23 全球购物
Moda Italia荷兰:意大利男士服装
2019/08/31 全球购物
书法培训心得体会
2014/01/05 职场文书
转党组织关系介绍信
2014/01/08 职场文书
中文专业自荐书
2014/06/29 职场文书
“向国旗敬礼”活动策划方案(4篇)
2014/09/27 职场文书
2014年数学教研组工作总结
2014/12/06 职场文书
护士实习自荐信
2015/03/06 职场文书
工作会议通知
2015/04/15 职场文书
2015年物资管理工作总结
2015/05/20 职场文书
python编写函数注意事项总结
2021/03/29 Python
pytorch加载预训练模型与自己模型不匹配的解决方案
2021/05/13 Python
Mysql数据库表中为什么有索引却没有提高查询速度
2022/02/24 MySQL
使用compose函数优化代码提高可读性及扩展性
2022/06/16 Javascript