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 相关文章推荐
python3抓取中文网页的方法
Jul 28 Python
基于Python socket的端口扫描程序实例代码
Feb 09 Python
python使用RNN实现文本分类
May 24 Python
django加载本地html的方法
May 27 Python
Python实现的json文件读取及中文乱码显示问题解决方法
Aug 06 Python
python使用magic模块进行文件类型识别方法
Dec 08 Python
详解python中TCP协议中的粘包问题
Mar 22 Python
python 爬取学信网登录页面的例子
Aug 13 Python
python模拟预测一下新型冠状病毒肺炎的数据
Feb 01 Python
Tensorflow设置显存自适应,显存比例的操作
Feb 03 Python
在Anaconda3下使用清华镜像源安装TensorFlow(CPU版)
Apr 19 Python
使用python对excel表格处理的一些小功能
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
PhpMyAdmin中无法导入sql文件的解决办法
2010/01/08 PHP
php语言的7种基本的排序方法
2020/12/28 PHP
window.location和document.location的区别分析
2008/12/23 Javascript
jQuery Ajax使用 全解析
2010/12/15 Javascript
JQuery中对Select的option项的添加、删除、取值
2013/08/25 Javascript
JavaScript 实现完美兼容多浏览器的复制功能代码
2015/04/28 Javascript
jQuery结合AJAX之在页面滚动时从服务器加载数据
2015/06/30 Javascript
详解JavaScript中的4种类型识别方法
2015/09/14 Javascript
分享五个有用的jquery小技巧
2015/10/08 Javascript
jquery实现简易的移动端验证表单
2015/11/08 Javascript
关于JSON与JSONP简单总结
2016/08/16 Javascript
学习Node.js模块机制
2016/10/17 Javascript
用jQuery的AJax实现异步访问、异步加载
2016/11/02 Javascript
详解Js模板引擎(TrimPath)
2016/11/22 Javascript
jQuery生成假加载动画效果
2016/12/01 Javascript
解决bootstrap模态框数据缓存的问题方法
2018/08/10 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
Vue中通过vue-router实现命名视图的问题
2020/04/23 Javascript
JavaScript 类的封装操作示例详解
2020/05/16 Javascript
python网络编程实例简析
2014/09/26 Python
Python实现定时精度可调节的定时器
2018/04/15 Python
DRF跨域后端解决之django-cors-headers的使用
2019/01/27 Python
详解Python静态网页爬取获取高清壁纸
2019/04/23 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
2019/08/23 Python
jenkins配置python脚本定时任务过程图解
2019/10/29 Python
django rest framework使用django-filter用法
2020/07/15 Python
python将字典内容写入json文件的实例代码
2020/08/12 Python
numpy中生成随机数的几种常用函数(小结)
2020/08/18 Python
Python ConfigParser模块的使用示例
2020/10/12 Python
JD Sports德国官网:英国领先的运动鞋和运动服饰零售商
2018/02/26 全球购物
Linux面试题LINUX系统类
2015/11/25 面试题
幼儿园小班评语大全
2014/04/17 职场文书
学生党员公开承诺书
2014/05/28 职场文书
学生打架检讨书
2014/10/20 职场文书
云冈石窟导游词
2015/02/04 职场文书
城镇居民医疗保险工作总结
2015/08/10 职场文书