关于Python中进度条的六个实用技巧分享

 更新时间:2022年04月05日 09:00:34   作者:费弗里  
在项目开发过程中加载、启动、下载项目难免会用到进度条,下面这篇文章主要给大家介绍了关于Python中进度条的六个实用技巧,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

1 简介

费老师我在几年前写过的一篇文章(https://www.jb51.net/article/243348.htm)中,介绍过tqdm这个在当下Python圈子中已然非常流行的进度条库,可以帮助我们为任何具有循环迭代过程的代码逻辑添加进度条,从而帮助我们感知代码运行的过程。

而随着tqdm这几年来的发展迭代,更多更好用的功能加入其中,今天的文章中我就给大家总结了6条非常值得学习的tqdm特性。

2 tqdm中实用的6个特性

2.1 autonotebook自动切换进度条风格

用过tqdm的朋友们大都知道它可以在常规的终端以及jupyter风格的各种编辑器中使用,且在后者中会以更美观的形式进行渲染,而以往我们通常需要在常规的终端里使用from tqdm import tqdm,在jupyter风格的编辑器中使用from tqdm.notebook import tqdm来分别导入。

而tqdm最近几个版本中引入了实验性质的新特性,使得我们只需要统一通过from tqdm.autonotebook import tqdm导入tqdm,就可以自适应检测不同的运行环境从而自动控制显示:

2.2 延迟渲染进度条

有时候我们希望当循环过程很快就执行完时,可以不打印进度条,毕竟进度条的主要目的是监控长时间运行过程,这时我们就可以给tqdm()添加参数delay来设置延时的秒数,当循环过程实际运行时长低于delay则无需打印多余的迭代过程:

2.3 自定义进度条色彩

通过为tqdm()设置参数colour,可以传入多种常见色彩格式值,这在jupyter类编辑器中效果尤为明显:

2.4 自主控制的进度上限

有些情况下,我们传入tqdm()的对象在迭代过程中是无法预先计算得到进度上限轮次的,典型如pandas中数据框的itertuples(),这种时候我们就可以利用total参数自行预设上限:

2.5 针对enumerate、zip和map的替代

Python中除了常规的循环过程以外,还有几种内置函数也具有迭代循环的属性,而tqdm为了方便我们对这些非典型的循环过程添加进度条,也单独开发了tenumerate、tzip以及tmap这三个API,用于替代enumerate、zip和map:

2.6 设置进度条“用完即逝”

当我们希望为多层循环过程添加进度条监视时,常规的为每一层都直接使用tqdm(),会导致打印出过多的进度条,反而不利于我们观察进度过程。

而通过使用tqdm.auto中的trange(),我们可以通过设置参数leave=False,来让我们对应的进度条加载到头就自动消失掉,譬如下面动图中所展示的例子:

总结

到此这篇关于Python中进度条的六个实用技巧分享的文章就介绍到这了,更多相关Python进度条实用技巧内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 3分钟学会一个Python小技巧

    3分钟学会一个Python小技巧

    Python时间日期转换在开发中是非常高频的一个操作,你经常会遇到需要将字符串转换成 datetime 或者是反过来将 datetime 转换成字符串,今天小编给大家带来了一个Python小技巧,感兴趣的朋友一起看看吧
    2018-11-11
  • 浅谈python在提示符下使用open打开文件失败的原因及解决方法

    浅谈python在提示符下使用open打开文件失败的原因及解决方法

    今天小编就为大家分享一篇浅谈python在提示符下使用open打开文件失败的原因及解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • python多维数组切片方法

    python多维数组切片方法

    下面小编就为大家分享一篇python多维数组切片方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python类反射机制使用实例解析

    Python类反射机制使用实例解析

    这篇文章主要介绍了Python类反射机制使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Python中pywifi模块的基本用法讲解

    Python中pywifi模块的基本用法讲解

    跨平台的pywifi模块支持操作无线网卡,该模块易于使用,同时支持Windows、Linux等多个系统,这篇文章主要介绍了Python中pywifi模块的基本用法,需要的朋友可以参考下
    2022-11-11
  • Python设计模式之工厂方法模式实例详解

    Python设计模式之工厂方法模式实例详解

    这篇文章主要介绍了Python设计模式之工厂方法模式,结合实例形式较为详细的分析了工厂方法模式的概念、原理、用法及相关操作技巧,需要的朋友可以参考下
    2019-01-01
  • python 写一个水果忍者游戏

    python 写一个水果忍者游戏

    这篇文章主要介绍了python 如何写一个水果忍者游戏,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2021-01-01
  • 基于Python写个"点球大战"小游戏

    基于Python写个"点球大战"小游戏

    这篇文章主要为大家详细介绍了如何利用Python写个简单的"点球大战"小游戏,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-12-12
  • 跟老齐学Python之集成开发环境(IDE)

    跟老齐学Python之集成开发环境(IDE)

    IDE的全称是:Integrated Development Environment,简称IDE,也稱為Integration Design Environment、Integration Debugging Environment,翻译成中文叫做“集成开发环境”,在台湾那边叫做“整合開發環境”。
    2014-09-09
  • python 命令行参数模块argparse的实现

    python 命令行参数模块argparse的实现

    本文主要介绍了python 命令行参数模块argparse的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03

最新评论