随着tqdm这几年的发展和迭代,越来越多好用的功能加入其中。在今天的文章中,我将总结六个值得学习的tqdm特性。1.Autonotebook自动切换进度条样式。大部分用过tqdm的朋友都知道,它可以用在常规终端和各种jupyter风格的编辑器中,在后者中会呈现出更漂亮的形式。过去,我们通常需要在常规终端中使用fromtqdmimporttqdm,而在jupyter风格的编辑器中使用fromtqdm.notebookimporttqdm来分别导入它们。不过tqdm在最近的版本中引入了实验性的新特性,这样我们只需要通过fromtqdm.autonotebookimporttqdm导入tqdm,就可以自适应检测不同的运行环境,自动控制显示:2.延迟渲染进度条有时我们希望循环过程快执行的时候,进度条不能打印出来。毕竟,进度条的主要目的是监控长时间运行的进程。这时候我们可以在tqdm()中加入参数delay来设置延迟的秒数,当循环过程的实际运行时间低于delay时,就不需要打印多余的迭代过程:3.自定义进度条的颜色通过为tqdm()设置参数color,可以传入各种常用的颜色格式值,在jupyter类编辑器中效果特别明显:4.自控progresslimit在某些情况下,我们传入tqdm()的对象在迭代过程中无法预先计算得到progresslimitround,典型的例子就是pandas()中数据框的itertuples,此时我们可以使用total参数预设上限:5.enumerate,zipandmap的替代方法除了Python中常规的循环过程外,还有几个内置函数也具有迭代循环的属性,而tqdm为了方便我们添加进度条这些非典型的循环过程,tenumerate、tzip、tmap这三个API也分别被开发来替代enumerate、zip、ma??p:6.当我们希望添加进度条时,将进度条设置为“用完”监控到多层循环过程,常规直接对每一层使用tqdm()会导致打印出过多的进度条,不利于我们观察进度过程。而通过在tqdm.auto中使用trange(),我们可以设置参数leave=False,让我们对应的进度条在加载完成后自动消失,如下面动图所示的例子:
