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 相关文章推荐
matplotlib savefig 保存图片大小的实例
May 24 Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
Oct 09 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
Oct 22 Python
在Python中pandas.DataFrame重置索引名称的实例
Nov 06 Python
python并发和异步编程实例
Nov 15 Python
一百行python代码将图片转成字符画
Feb 19 Python
python3+opencv3识别图片中的物体并截取的方法
Dec 05 Python
Python shelve模块实现解析
Aug 28 Python
python自动结束mysql慢查询会话的实例代码
Oct 27 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
Feb 04 Python
解决django中form表单设置action后无法回到原页面的问题
Mar 13 Python
2021年值得向Python开发者推荐的VS Code扩展插件
Jan 25 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实现简单搜歌的方法
2015/07/28 PHP
浅谈PHP值mysql操作类
2016/06/29 PHP
Windows2003下php5.4安装配置教程(IIS)
2016/06/30 PHP
PHP验证终端类型是否为手机的简单实例
2017/02/07 PHP
兼容Mozilla必须知道的知识。
2007/01/09 Javascript
javascript 伪数组实现方法
2010/10/11 Javascript
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
2010/12/30 Javascript
JavaScript中的闭包(Closure)详细介绍
2014/12/30 Javascript
AngularJS的ng Http Request与response格式转换方法
2016/11/07 Javascript
MvcPager分页控件 适用于Bootstrap
2017/06/03 Javascript
AngularJs每天学习之总体介绍
2017/08/07 Javascript
Vue的路由动态重定向和导航守卫实例
2018/03/17 Javascript
Vue 页面切换效果之 BubbleTransition(推荐)
2018/04/08 Javascript
js canvas画布实现高斯模糊效果
2018/11/27 Javascript
react同构实践之实现自己的同构模板
2019/03/13 Javascript
echarts多条折线图动态分层的实现方法
2019/05/24 Javascript
vue动态注册组件实例代码详解
2019/05/30 Javascript
ES6的异步终极解决方案分享
2019/07/11 Javascript
vue3.0中使用postcss-pxtorem的具体方法
2019/11/20 Javascript
[56:13]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第一场 1月10日
2021/03/11 DOTA
python网络编程之读取网站根目录实例
2014/09/30 Python
在Python中使用pngquant压缩png图片的教程
2015/04/09 Python
Python中的getopt函数使用详解
2015/07/28 Python
Python读取图片属性信息的实现方法
2016/09/11 Python
基于Python+QT的gui程序开发实现
2020/07/03 Python
使用Python爬虫爬取小红书完完整整的全过程
2021/01/19 Python
python实现控制台输出颜色
2021/03/02 Python
HTML5和以前HTML4的区别整理
2013/10/20 HTML / CSS
浅析canvas元素的html尺寸和css尺寸对元素视觉的影响
2019/07/22 HTML / CSS
美国知名的女性服饰品牌:LOFT(洛芙特)
2016/08/05 全球购物
大专毕业自我鉴定
2014/02/04 职场文书
领导班子对照检查剖析材料
2014/10/13 职场文书
个人学习党的群众路线教育实践活动心得体会
2014/11/05 职场文书
2014年业务工作总结
2014/11/17 职场文书
会计求职自荐信范文
2015/03/04 职场文书
校园运动会广播稿
2015/08/19 职场文书