1 简介

在日常运行程序的过程中常常涉及到「循环迭代」过程,对于执行时间很短的程序来说倒无所谓,但对于运行过程有明显耗时的涉及「循环迭代」的程序,为其加上「进度条」(progress bar),是帮助我们监测代码执行进度以及处理中间异常错误非常实用的技巧。

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:1097524789

图1

本文就将为大家介绍Python中非常实用又风格迥异的两个进度条相关库——tqdmalive-progress的主要用法。

2 tqdm常用方法

tqdmPython中所有进度条相关库中最出名的,既然是最出名的,自然有它独到之处。

tqdm不仅可以生成基础的可在终端中显示的进度条,还可以配合jupyter notebookjupyter lab生成更加美观的网页「交互」部件形式的进度条,更是和pandas强强联手,为pandas中的一些操作提供专有的进度条功能。

下面我们来对tqdm的主要功能进行介绍。

2.1 基础用法

因为是第三方库,首先需要利用pip install tqdm或 conda install -c conda-forge tqdm对其进行安装,安装完成后先来看看它最基本的用法:

图2

利用tqdm.tqdm,将for循环过程中进行迭代的对象简单包裹,就实现了为循环过程添加进度条以及打印执行速度、已运行时间与预估剩余运行时间等实用信息的功能,同样也可用于「列表推导」

图3

而针对迭代对象是range()的情况,tqdm还提供了简化版的trange()来代替tqdm(range())

图4

其附带的参数desc还可以帮助我们设置进度条的说明文字:

图5

而如果想要在迭代过程中变更说明文字,还可以预先实例化进度条对象,在需要刷新说明文字的时候执行相应的程序:

图6

但当迭代的对象长度一开始未知时,譬如对pandas中的DataFrame.itertuples()进行迭代,我们就只能对其执行速度等信息进行估计,但无法看到进度条递增情况,因为tqdm不清楚迭代的终点如何:

图7

2.2 配合jupyter notebook/jupyter lab的美观进度条

tqdmjupyter notebookjupyter lab有着特殊的支持,且使用方法非常简单,只需要将原有的from tqdm import XXX的相应功能导入格式修改为from tqdm.notebook import XXX就可以了,以trange为例:

图8

2.3 配合pandas中的apply

tqdmpandas中的apply()过程提供了特殊的支持,因为pandas中的apply()本质上就是串行循环运算,你可以将pandas中的任何apply操作替换为progress_apply,并且记住每个单独的progress_apply前要先执行tqdm.pandas(),就像下面的例子一样:

图9

3 alive-progress常用方法

虽然与tqdm一样都是为了给循环过程加上进度条而诞生的库,但alive-progress相比tqdm增加了更多花样繁多的动态效果,我们通过调用其专门提供的showtime()函数可以查看所有可用的动态进度条样式:

图10

同样类似地可以查看所有进度条样式:

图11

使用起来也是非常简单,但与tqdm用法区别很大,需要配合with关键词,譬如下面我们使用到alive_progress中的alive_bar来生成动态进度条:

图12

通过修改bar参数来改变进度条的样式:

图13

更多关于alive-progress的内容感兴趣的朋友可以查看官方说明:(https://github.com/rsalmei/alive-progress),但比较遗憾的是目前的alive-progress只能在终端中运行,还没有为jupyter开发更美观的交互式部件,但你可以在譬如网络爬虫等任务中使用它,效果也是很不错的。

用 Python 写出这样的进度条,刷新了我对进度条的认知相关推荐

  1. r语言 python 股票_python r语言 股票!如何用python写出爬虫?

    python计时器问题? import time print('按下回车开始,按下 Ctrl C 暂停/停止计时.') while True: input("") starttim ...

  2. python编写程序输出诗句_RPA交流——使用 python 写出诗一样的代码 (一)

    原标题:RPA交流--使用 python 写出诗一样的代码 (一) 下载RPA请访问:www.i-search.com.cn 学习RPA请访问:https://support.i-search.com ...

  3. 怎么用Python写出随时间变化的字_Python爬虫实战,AcFun弹幕视频网 - 长情且温柔

    ​ CSDN个人主页: 高智商白痴原文地址: 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却不知道如何去学习更 ...

  4. 怎么用Python写出随时间变化的字_如果只推荐一本 Python 进阶书籍,我要 Pick 它!...

    本文作者:豌豆花下猫,来源:Python猫 今年二月初,我偶然看到了一条推特: <流畅的Python>一书的作者发布了一条激动人心的消息:他正在写作第二版! 如果要票选最佳的 Python ...

  5. python写出的程序如何给别人使用-涨姿势!这些小技巧让小白也可以写出更优雅的Python代码!...

    原标题:涨姿势!这些小技巧让小白也可以写出更优雅的Python代码! 一.前言 我前两天回答了两个Python相关的问题,收到了很多赞,从答案被收藏的情况来看,确实对不少人都很有帮助,所以我也很开心. ...

  6. python写出的程序如何给别人使用-python如何写出表白程序

    用python编表白程序的方法: 1.创建GUI窗口,实现代码的调用. 2.编写点击触发函数,实现表白程序. 具体代码如下:from tkinter import * from tkinter imp ...

  7. 怎么用Python写出随时间变化的字_面试必备 | 带你彻底搞懂 Python 生成器

    文章转载地址:面试必备 | 带你彻底搞懂 Python 生成器. 写在之前 Python 的高级语言特性一直是我们学习 Python 的一个难点,大部分人并没有做到熟练的掌握,甚至去学习它都感觉很困难 ...

  8. python写出XLSX

    python与xlsxwriter python与xlsxwriter 1.准备阶段: 2.细嚼慢咽 创建Excel文件 创建工作表sheet 设置工作表 1.设置列宽 2.定义格式 3.按行写出代码 ...

  9. 读书《你能写出好故事:写作的诀窍、大脑的奥秘、认知的陷阱》

    作者简介 作者丽萨·克龙(Lisa Cron),现任加州大学洛杉矶分校写作项目的老师,她毕业于加州大学伯克利分校,在出版业.电视业工作多年,也是纽约华纳兄弟电影公司.洛杉矶威秀电影公司等的故事顾问.擅 ...

  10. python 函数进度条怎么_刷新你对进度条的认识,用python写出不一样的进度条

    1 简介 在日常工作中,我们运行程序经常会用到「循环迭代」,假如这个执行时间很短,那倒也无所谓.但是有一些过程耗时蛮长的,给其加上「进度条」(progress bar),可以帮我们监控代码执行进度,以 ...

最新文章

  1. 1个人70万行代码,20年持续更新,这款游戏号称开发到死,永不停更
  2. 最快最新最详细的IT电子书
  3. 关于 HTTP 的一切(HTTP/1.1,HTTP/2,HTTP/3,HTTPS, CORS, 缓存 ,无状态)
  4. Fiddler快速入门
  5. linux管理员权限命令_每个系统管理员应该知道的20个Linux命令
  6. 递增三元组(蓝桥杯)
  7. 要有多勇敢才敢对回忆念念不忘,还是喜欢流眼泪。学会成长坚强,相互理解而不是责怪。我安静点,我不哭了~...
  8. VUE 注册验证码页面实例
  9. matlab相机标定工具箱讲解,matlab 相机标定工具箱
  10. java 计算日期时间差_Java计算日期和时间差
  11. 幼儿园体育游戏电子计算机教案,幼儿园体育游戏《学会跳绳》教案三篇
  12. [elasticsearch笔记] Query DSL - percolate
  13. MySQL索引数据结构二叉树、红黑树、B-Tree、B+Tree、Hash
  14. 阻止checkbox选中态
  15. 上传渗透----中国菜刀和kali的使用(安全攻防)
  16. 葫芦岛php,葫芦岛php培训
  17. 车牌识别系统不能连接服务器,详解车牌识别系统安装及故障处理方法
  18. P2p流媒体直播与视频会议有什么不同?
  19. 视频上有水印怎么去除?如何去掉视频上的水印?
  20. 企业级开发的JAVA代码生成器-java快速开发平台源码版

热门文章

  1. linux-2-wc-od-du-df-文件目录磁盘使用情况查看
  2. jquery-ui-拖
  3. C# 利用位运算传递多个参数方法
  4. Diskpart 磁盘管理实战演示
  5. WPF依赖属性(续)(1)
  6. Application Virtualization 4.5 部署之(二)
  7. Nginx配置文件示例
  8. Hibernate面试问题与解答
  9. 解决TypeError: string indices must be integers, not str
  10. C语言指针——基础知识理解