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基于Tkinter库实现简单文本编辑器实例
May 05 Python
Python SQLite3数据库日期与时间常见函数用法分析
Aug 14 Python
python使用Tesseract库识别验证
Mar 21 Python
Python3.4学习笔记之列表、数组操作示例
Mar 01 Python
详解python中的数据类型和控制流
Aug 08 Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
Aug 13 Python
python Tensor和Array对比分析
Jan 08 Python
python如何通过twisted搭建socket服务
Feb 03 Python
Python爬虫爬取电影票房数据及图表展示操作示例
Mar 27 Python
利用django model save方法对未更改的字段依然进行了保存
Mar 28 Python
TensorFlow的reshape操作 tf.reshape的实现
Apr 19 Python
如何在mac下配置python虚拟环境
Jul 06 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
CPU步进是什么意思?i3-9100F B0步进和U0步进区别知识科普
2020/03/17 数码科技
php无限遍历目录示例
2014/02/21 PHP
php身份证号码检查类实例
2015/06/18 PHP
PHP中有关长整数的一些操作教程
2019/09/11 PHP
JS获取当前网页大小以及屏幕分辨率等
2014/09/05 Javascript
Knockout自定义绑定创建方法
2015/12/26 Javascript
超赞的jQuery图片滑块动画特效代码汇总
2016/01/25 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
2016/01/27 Javascript
自动完成的搜索框javascript实现
2016/02/26 Javascript
jQuery实现Select左右复制移动内容
2016/08/05 Javascript
JS数组去掉重复数据只保留一条的实现代码
2016/08/11 Javascript
JavaScript原生编写《飞机大战坦克》游戏完整实例
2017/01/04 Javascript
Canvas + JavaScript 制作图片粒子效果
2017/02/08 Javascript
微信小程序提取公用函数到util.js及使用方法示例
2019/01/10 Javascript
bootstrap table列和表头对不齐的解决方法
2019/07/19 Javascript
vue实现在线预览pdf文件和下载(pdf.js)
2019/11/26 Javascript
js实现点击生成随机div
2020/01/16 Javascript
vue组件内部引入外部js文件的方法
2020/01/18 Javascript
axios封装与传参示例详解
2020/10/18 Javascript
使用Python做定时任务及时了解互联网动态
2019/05/15 Python
python3 selenium自动化测试 强大的CSS定位方法
2019/08/23 Python
使用python接受tgam的脑波数据实例
2020/04/09 Python
简单介绍一下pyinstaller打包以及安全性的实现
2020/06/02 Python
Jupyter Notebook安装及使用方法解析
2020/11/12 Python
html5 音乐播放器 audio 标签使用概述
2013/07/15 HTML / CSS
HTML5几个设计和修改的页面范例分享
2015/09/29 HTML / CSS
浅谈Html5页面打开app的一些思考
2020/03/30 HTML / CSS
企业统计员岗位职责
2013/12/13 职场文书
经典婚礼主持词
2014/03/13 职场文书
小学生竞选班干部演讲稿
2014/04/24 职场文书
2014年民政局关于保密工作整改措施
2014/09/19 职场文书
个人公司授权委托书范本
2014/10/12 职场文书
法定代表人授权委托书格式
2014/10/14 职场文书
2014年德育工作总结
2014/11/20 职场文书
2015年药店店长工作总结
2015/04/29 职场文书
spring boot中nativeQuery的用法
2021/07/26 Java/Android