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日志模块logging简介
Apr 13 Python
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
Dec 14 Python
200 行python 代码实现 2048 游戏
Jan 12 Python
Pandas读取MySQL数据到DataFrame的方法
Jul 25 Python
python+opencv实现霍夫变换检测直线
Oct 23 Python
Python3之不使用第三方变量,实现交换两个变量的值
Jun 26 Python
用python的turtle模块实现给女票画个小心心
Nov 23 Python
python飞机大战pygame游戏背景设计详解
Dec 17 Python
通过python检测字符串的字母
Feb 18 Python
新手入门学习python Numpy基础操作
Mar 02 Python
Python pip安装第三方库实现过程解析
Jul 09 Python
基于python制作简易版学生信息管理系统
Apr 20 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中根据变量的类型 选择echo或dump
2012/07/05 PHP
PHP empty函数报错解决办法
2014/03/06 PHP
PHP函数getenv简介和使用实例
2014/05/12 PHP
php加密解密字符串示例
2016/10/13 PHP
PHP使用new StdClass()创建空对象的方法分析
2017/06/06 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
2018/05/12 PHP
PHP实现上传图片到数据库并显示输出的方法
2018/05/31 PHP
Yii2.0 RESTful API 基础配置教程详解
2018/12/26 PHP
JSF中confirm弹出框的用法示例介绍
2014/01/07 Javascript
JS动态修改iframe内嵌网页地址的方法
2015/04/01 Javascript
基于javascript代码实现通过点击图片显示原图片
2015/11/29 Javascript
JS实时弹出新消息提示框并有提示音响起的实现代码
2016/04/20 Javascript
利用nodejs监控文件变化并使用sftp上传到服务器
2017/02/18 NodeJs
jQuery中Chosen三级联动功能实例代码
2017/03/07 Javascript
JavaScript限制在客户区可见范围的拖拽(解决scrollLeft和scrollTop的问题)(2)
2017/05/17 Javascript
详解Vue一个案例引发「内容分发slot」的最全总结
2018/12/02 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
如何手动实现一个 JavaScript 模块执行器
2020/10/16 Javascript
解决VantUI popup 弹窗不弹出或无蒙层的问题
2020/11/03 Javascript
python中pygame模块用法实例
2014/10/09 Python
Python中os.path用法分析
2015/01/15 Python
python实现根据月份和日期得到星座的方法
2015/03/27 Python
numpy自动生成数组详解
2017/12/15 Python
python 3.7.0 安装配置方法图文教程
2018/08/27 Python
python爬虫之自制英汉字典
2019/06/24 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
2020/05/19 Python
HTML5实践-图片设置成灰度图
2012/11/12 HTML / CSS
HTML5中的进度条progress元素简介及兼容性处理
2016/06/02 HTML / CSS
女士时装鞋:Chinese Laundry
2018/08/29 全球购物
金山毒霸系列的笔试题
2013/04/13 面试题
宾馆总经理岗位职责
2014/02/14 职场文书
五年级学生期末评语
2014/12/26 职场文书
2015年商场工作总结
2015/04/27 职场文书
合同审查法律意见书
2015/06/04 职场文书
祝酒词范文
2015/08/12 职场文书
关于Python OS模块常用文件/目录函数详解
2021/07/01 Python