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

目录
  • 1 简介
  • 2 tqdm中实用的6个特性
    • 2.1 autonotebook自动切换进度条风格
    • 2.2 延迟渲染进度条
    • 2.3 自定义进度条色彩
    • 2.4 自主控制的进度上限
    • 2.5 针对enumerate、zip和map的替代
    • 2.6 设置进度条“用完即逝”
  • 总结

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进度条实用技巧内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详细介绍Python进度条tqdm的使用

    前言 有时候在使用Python处理比较耗时操作的时候,为了便于观察处理进度,这时候就需要通过进度条将处理情况进行可视化展示,以便我们能够及时了解情况.这对于第三方库非常丰富的Python来说,想要实现这一功能并不是什么难事. tqdm就能非常完美的支持和解决这些问题,可以实时输出处理进度而且占用的CPU资源非常少,支持windows.Linux.mac等系统,支持循环处理.多进程.递归处理.还可以结合linux的命令来查看处理情况,等进度展示. 大家先看看tqdm的进度条效果 安装 github

  • Python进度条实时显示处理进度的示例代码

    前言 在大多数时候,我们的程序会一直进行循环处理.这时候,我们非常希望能够知道程序的处理进度,由此来决定接下来该做些什么.接下来告诉大家如何简单又漂亮的实现这一功能. 如何使用这个类 使用这个类很简单,只需要三步即可完成,如下: process_bar = ShowProcess(max_steps) # 1.在循环前定义类的实体, max_steps是总的步数 for i in range(max_steps + 1): process_bar.show_process() # 2.显示当前进

  • Python 实现进度条的六种方式

    一.普通进度条 示例代码 import sys import time def progress_bar(): for i in range(1, 101): print("\r", end="") print("Download progress: {}%: ".format(i), "▋" * (i // 2), end="") sys.stdout.flush() time.sleep(0.05) i

  • Python小进度条显示代码

    有的时候程序需要有进度条显示,比如说安装程序.下载文件等场合. 下面有一段小程序可达到效果 程序代码 import time for i in range(0, 101, 2): time.sleep(0.3) num = i // 2 if i == 100: process = "\r[%3s%%]: |%-50s|\n" % (i, '|' * num) else: process = "\r[%3s%%]: |%-50s|" % (i, '|' * num)

  • Python实现带百分比的进度条

    大家在安装程序或下载文件时,通常都能看到进度条,提示你当前任务的进度.其实,在python中实现这个功能很简单,下面是具体代码.在实际应用中,你完全可以根据自己的要求进行修改!比如,示例中是通过time.sleep()方法进行时间延迟,你完全可以根据实际的程序运行耗时进行控制:同样,在进度百分比处,你也可以显示实际的进度比,而不是例子中机械的自增百分比. import sys import time def view_bar(num, total): rate = num / total rat

  • Python 给下载文件显示进度条和下载时间的实现

    大家在下载文件时能够显示下载进度和时间非常好,其实实现它方法很简单,这里我写了个进度条的模块,其中还附带上了运行时间也就是下载时间了. 该模块调用了三个库: 1.os 2.requests 3.time 话不多说,先上代码!!!. # 进度条模块 def progressbar(url,path): if not os.path.exists(path): # 看是否有该文件夹,没有则创建文件夹 os.mkdir(path) start = time.time() #下载开始时间 respons

  • Python实现采用进度条实时显示处理进度的方法

    本文实例讲述了Python实现采用进度条实时显示处理进度的方法.分享给大家供大家参考,具体如下: 前言 在大多数时候,我们的程序会一直进行循环处理.这时候,我们非常希望能够知道程序的处理进度,由此来决定接下来该做些什么.接下来告诉大家如何简单又漂亮的实现这一功能. 如何使用这个类 使用这个类很简单,只需要三步即可完成,如下: process_bar = ShowProcess(max_steps) # 1.在循环前定义类的实体, max_steps是总的步数 for i in range(max

  • Python显示进度条的方法

    本文实例讲述了Python显示进度条的方法,是Python程序设计中非常实用的技巧.分享给大家供大家参考.具体方法如下: 首先,进度条和一般的print区别在哪里呢? 答案就是print会输出一个\n,也就是换行符,这样光标移动到了下一行行首,接着输出,之前已经通过stdout输出的东西依旧保留,而且保证我们在下面看到最新的输出结果. 进度条不然,我们必须再原地输出才能保证他是一个进度条,否则换行了怎么还叫进度条? 最简单的办法就是,再输出完毕后,把光标移动到行首,继续在那里输出更长的进度条即可

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

    目录 1 简介 2 tqdm中实用的6个特性 2.1 autonotebook自动切换进度条风格 2.2 延迟渲染进度条 2.3 自定义进度条色彩 2.4 自主控制的进度上限 2.5 针对enumerate.zip和map的替代 2.6 设置进度条“用完即逝” 总结 1 简介 费老师我在几年前写过的一篇文章(https://www.jb51.net/article/243348.htm)中,介绍过tqdm这个在当下Python圈子中已然非常流行的进度条库,可以帮助我们为任何具有循环迭代过程的代码

  • Python实现进度条和时间预估的示例代码

    一.前言 在python当中可以用进度条来显示工作的进度,比如for循环的进度或者一些模型训练的进度. 在这里可以使用progressbar包以及tqdm包来实现. 使用pip install progressbar 安装progressbar包. 使用pip install tqdm安装progressbar包. 二.代码 1. progressbar import progressbar import time //定义进度条的显示样式 widgets = ["doing task: &qu

  • 六种酷炫Python运行进度条效果的实现代码

    本文介绍了目前6种比较常用的进度条,让大家都能直观地看到脚本运行最新的进展情况 1.普通进度条 在代码迭代运行中可以自己进行统计计算,并使用格式化字符串输出代码运行进度 import sys import time def progress_bar(): for i in range(1, 101): print("\r", end="") print("Download progress: {}%: ".format(i), "▋&q

  • python实现进度条的多种实现

    有时候在使用Python处理比较耗时操作的时候,为了便于观察处理进度,这时候就需要通过进度条将处理情况进行可视化展示,以便我们能够及时了解情况.这对于第三方库非常丰富的Python来说,想要实现这一功能并不是什么难事. tqdm就能非常完美的支持和解决这些问题,可以实时输出处理进度而且占用的CPU资源非常少,支持循环处理.多进程.递归处理.还可以结合linux的命令来查看处理情况,等进度展示. tqdm在阿拉伯语中的意思是"进展",是python中一个快速.扩展性强的进度条工具库,能让

  • Python tkinter进度条控件(Progressbar)的使用

    进度条的作用就是提示用户进度信息.可以有两种方式: 1)提示完成度 比如,正在安装程序的进度,一般是从0%到100%. 2)提示正在进行处理 比如正在处理数据内容,并不知道何时能够处理完毕.这个时候的进度是提示用户有任务正在进行.此类的提示没有完成度提示,只是进度条来回往复的移动,表示任务正在进行中. 进度条对象是定义在ttk中的,使用的时候需要引入ttk包. 1 属性 属性 描述 cursor 鼠标位于进度条内时的形状 length 进度条长度 maximum 进度条最大刻度值 mode 进度

  • python动态进度条的实现代码

    python动态进度条的实现代码 有时候我们需要使用print打印工作进度,正常使用print函数会导致刷屏的现象,举个最简单的例子,从1打印到10,每次停顿0.1秒 这样看起来很麻烦,有没有办法实现动态的进度显示呢?我们可以使用'\r',这个命令可以使光标重新返回头部,之后设置end='',取消python的打印自动换行的功能 import time for i  in range(10):     print('\r比例' ,i/10,end='')     time.sleep(1) 便可

  • 详解Python实现进度条的4种方式

    这里只列举了部分方法,其他方法或python库暂时还没使用到 1.不用库,直接打印: 代码样例: import time #demo1 def process_bar(percent, start_str='', end_str='', total_length=0): bar = ''.join(["\033[31m%s\033[0m"%' '] * int(percent * total_length)) + '' bar = '\r' + start_str + bar.ljus

  • Python中号称神仙的六个内置函数详解

    目录 Lambda 函数 Map 函数 Reduce函数 enumerate 函数 Zip 函数 Filter 函数 人生苦短,菜鸟学Python! 今天,我们会一次性分享6个堪称神仙的内置函数.在很多计算机书籍中,它们也通常作为高阶函数来介绍.而我自己在日常工作中,经常使用它们来使代码更快,更易于理解. Lambda 函数 Lambda函数用于创建匿名函数,即没有名称的函数.它只是一个表达式,函数体比def简单很多.当我们需要创建一个函数来执行单个操作并且可以在一行中编写时,就可以用到匿名函数

随机推荐