千家信息网

怎么在Python中妥善使用进度条

发表于:2025-02-19 作者:千家信息网编辑
千家信息网最后更新 2025年02月19日,这篇文章主要介绍"怎么在Python中妥善使用进度条",在日常操作中,相信很多人在怎么在Python中妥善使用进度条问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么在
千家信息网最后更新 2025年02月19日怎么在Python中妥善使用进度条

这篇文章主要介绍"怎么在Python中妥善使用进度条",在日常操作中,相信很多人在怎么在Python中妥善使用进度条问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么在Python中妥善使用进度条"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

    1 简介

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

    2 tqdm常用方法

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

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

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

    2.1 基础用法

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

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

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

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

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

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

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

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

    2.3 配合pandas中的apply

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

    3 alive-progress常用方法

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

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

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

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

    到此,关于"怎么在Python中妥善使用进度条"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

    进度 过程 迭代 循环 功能 对象 方法 程序 学习 帮助 运行 实用 动态 文字 时间 更多 样式 生成 出名 特殊 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全手抄报内容名人名言 服务器如何配置管理口ip 学校网络安全等级划分 时间服务器在哪里设置 数据库主数据文件扩展名 计算机网络技术专业教程 asp 连接 数据库 通信技术 计算机网络技术 5600x能上服务器主板吗 软件开发面试题背诵目的 常州衡器管理软件开发公司 服务器网络受限怎么调整 花钱搞网络安全防护 网络技术与应用基础试题 电脑版战斗学院服务器在哪里 肇庆虚拟服务器管理软件 莱芒网络技术天津有限公司 做软件开发给公司带来损失 软件开发与应用工程师的区别 怀旧服最多人玩的服务器 深圳南山软件开发测试 朔州展厅多媒体软件开发 中国有计算机网络服务器终端吗 网络安全问题怎么设置 亚马逊数据库自动生成软件 软件开发 需要的团队 数据库主要划分为哪几种类型 安庆小程序软件开发 网络安全模块龙头股 数据库字段默认null
    0