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判断一个集合是否包含了另外一个集合中所有项的方法
Jun 30 Python
python变量不能以数字打头详解
Jul 06 Python
简单掌握Python的Collections模块中counter结构的用法
Jul 07 Python
Python 爬虫图片简单实现
Jun 01 Python
python 实现一个贴吧图片爬虫的示例
Oct 12 Python
Python cookbook(数据结构与算法)实现对不原生支持比较操作的对象排序算法示例
Mar 15 Python
python实现隐马尔科夫模型HMM
Mar 25 Python
对Python3使运行暂停的方法详解
Feb 18 Python
Python3之不使用第三方变量,实现交换两个变量的值
Jun 26 Python
浅析python中while循环和for循环
Nov 19 Python
Django 自定义分页器的实现代码
Nov 24 Python
python 实现检验33品种数据是否是正态分布
Dec 09 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 将excel导入mysql
2009/11/09 PHP
解析php二分法查找数组是否包含某一元素
2013/05/23 PHP
PHP多个文件上传到服务器实例
2014/10/29 PHP
PHP闭包函数详解
2016/02/13 PHP
php ZipArchive实现多文件打包下载实例
2019/10/31 PHP
PDO实现学生管理系统
2020/03/21 PHP
Javascript 事件流和事件绑定
2009/07/16 Javascript
显示js对象所有属性和方法的函数
2009/10/16 Javascript
win7下安装配置node.js+express开发环境
2015/12/06 Javascript
基于jquery实现页面滚动到底自动加载数据的功能
2015/12/19 Javascript
使用NodeJs 开发微信公众号(三)微信事件交互实例
2016/03/02 NodeJs
js实现文字向上轮播功能
2017/01/13 Javascript
angular实现form验证实例代码
2017/01/17 Javascript
微信小程序实现多个按钮toggle功能的实例
2017/06/13 Javascript
JS实现商品筛选功能
2020/08/19 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
2017/07/17 Javascript
Angular将填入表单的数据渲染到表格的方法
2017/09/22 Javascript
微信小程序富文本渲染引擎的详解
2017/09/30 Javascript
JS加密插件CryptoJS实现的DES加密示例
2018/08/16 Javascript
js遍历详解(forEach, map, for, for...in, for...of)
2019/08/28 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
ES6 Symbol在对象中的作用实例分析
2020/06/06 Javascript
Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法
2015/03/05 Python
详解Python的Django框架中inclusion_tag的使用
2015/07/21 Python
使用Python抓取豆瓣影评数据的方法
2018/10/17 Python
Django添加KindEditor富文本编辑器的使用
2018/10/24 Python
django 消息框架 message使用详解
2019/07/22 Python
Django 请求Request的具体使用方法
2019/11/11 Python
解决Numpy中sum函数求和结果维度的问题
2019/12/06 Python
Django model.py表单设置默认值允许为空的操作
2020/05/19 Python
加拿大著名时装品牌:SOIA & KYO
2016/08/23 全球购物
3分钟英语演讲稿
2014/04/29 职场文书
法英专业大学生职业生涯规划书范文
2014/09/22 职场文书
酒店管理专业毕业生自我鉴定
2014/09/29 职场文书
党员公开承诺书2015
2015/01/21 职场文书
Android存储中最基本的文件存储方式
2022/04/30 Java/Android