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

开发
在当下Python圈子中tqdm已然是非常流行的进度条库,可以帮助我们为任何具有循环迭代过程的代码逻辑添加进度条,从而帮助我们感知代码运行的过程。

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

1.  autonotebook自动切换进度条风格

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

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

2. 延迟渲染进度条

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

3.自定义进度条色彩

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

4.  自主控制的进度上限

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

5. 针对enumerate、zip和map的替代

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

6. 设置进度条“用完即逝”

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

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

责任编辑:赵宁宁 来源: Python大数据分析
相关推荐

2024-01-08 18:05:19

PyCharm技巧功能

2021-01-21 08:00:00

开发工具VS Code

2021-06-11 13:30:28

神经网络机器学习

2019-10-10 16:31:51

PyCharmPythonWindows

2021-08-24 00:13:23

Windows 10Windows微软

2023-01-26 01:33:09

web性能优化

2022-05-11 12:15:50

scriptweb性能

2010-01-25 18:27:54

Android进度条

2015-07-30 14:43:04

导航栏iOS开发

2020-04-07 09:43:17

vue.js进度组件开发

2015-07-31 11:19:43

数字进度条源码

2022-01-07 06:09:23

Web性能优化

2015-01-12 12:13:03

Android进度条ProgressDia

2023-04-26 00:34:36

Python技巧程序员

2021-11-15 10:02:16

Python命令技巧

2015-01-12 09:30:54

Android进度条ProgressDia

2024-04-16 08:24:58

Python_str__()方法字符串

2022-03-26 09:32:54

Python编程映射

2012-07-31 09:53:33

HTML5进度条

2015-03-02 14:47:01

MySQLMySQL编程技术
点赞
收藏

51CTO技术栈公众号