python进度库-tqdm的自定义能力

今天罗列几个关于 tqdm 常见自定义场景。并尝试对动态更新描述信息做简单的封装,积累一些通用模块。

tqdm 提供了丰富的自定义选项,可以让你根据不同的需求调整进度条的外观和行为,接下来看看他的自定义能力。

tqdm 函数参数:
desc :进度条的描述信息。
total :总迭代次数(默认为 None ,会自动检测)。
leave :是否在完成时保留进度条(默认为 True )。
ncols :进度条的最大宽度(列数)。
ascii :是否使用 ASCII 字符显示进度条(默认为 False )。
bar_format :自定义进度条的格式字符串。
colour :设置进度条的颜色。

1. 基本自定义

desc="Processing" :设置进度条的描述信息。
ascii=False :不使用 ASCII 字符显示进度条。这个参数默认就是 False ,如果设置为 True,进度条就变成 #
ncols=75 :设置进度条的最大宽度为 75 列。
第一个是 ascii = False。第二个是 ascii = True

2. 自定义进度条格式

你可以通过 bar_format 参数来自定义进度条的格式。并且有一些信息只有 tqdm 才"知道"的信息,因此,它内置了一些占位符:
{l_bar} :左边的进度条部分。
{bar} :进度条本身。
{r_bar} :右边的信息部分。
{n} :当前迭代次数。
{total} :总迭代次数。
{percentage} :百分比。
{rate} :每秒迭代次数。
{elapsed} :已用时间。
{remaining} :剩余时间。

3.设置进度条颜色

你可以通过 colour 参数来设置进度条的颜色。 colour 可以接受多种颜色名称或 RGB 值。


4.动态更新描述信息

这个是最常用的功能,你可以在循环中动态更新进度条的描述信息。

行5: tqdm(total=100, desc="动态更新描述信息") :创建一个进度条对象,并设置总迭代次数为 100。 with 语句确保在退出块时自动关闭进度条。
行7-17:在特定的迭代次数( i == 20 , i == 40 , i == 60 , i == 80 )时,调用 pbar.set_description() 方法来更新进度条的描述信息。
pbar.update(1) :每次迭代增加进度条 1 个单位。这是必须的,否则进度条不会更新。

上面的写法侵入性太强了,一大堆关于进度的代码混到主循环里面。我们尝试做一些简单封装。

先看看封装后的使用代码有哪些改进:

行4:使用 with 语法创建和使用 CustomTqdm 对象。当退出 with 语句块时, __exit__ 方法会自动调用 pbar.close() 关闭进度条。
行6-9: 在循环之前,配置不同的更新点。避免循环中出现过多的进度相关代码
行13:在循环中,每次迭代调用 pbar.update(1) 更新进度条。

看看实现代码:

抄自于:https://www.toutiao.com/article/7431040976401023498/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/824528.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

敏捷组织中项目管理办公室的角色需要遵循哪些措施

在敏捷组织中,项目管理办公室(PMO)扮演了关键的协调和支持角色。主要的措施包括:1. 遵循敏捷原则和实践;2. 促进团队协作和沟通;3. 监控项目进度和性能;4. 提供培训和支持;5. 确保与组织战略一致;6. 灵活适应变化。其中,促进团队协作和沟通是提高效率和质量的关键。1…

IJB-International Journal of Bioprinting

生物打印的信息技术与基础研究(打印什么、怎么打印等)、生物打印的材料和配方、生物打印中用于增材制造的细胞来源和生物技术、3D生物打印技术、新的设计和制造范式、3D打印产品的应用研究目的与评价、相关的社会影响(对经济、政策、环境等的影响)@目录一、征稿简介二、重要…

工作服穿戴ai识别厂商

工作服穿戴ai识别厂商基于AI人工智能机器视觉分析识别技术进行部署,工作服穿戴ai识别厂商利用现场在特定生产区域内已有的监控摄像头能够对工人的穿戴情况进行实时检测。工作服穿戴AI识别系统经过大量数据训练和算法优化,能够准确判断工人的穿戴是否合规。一旦系统检测到工人…

让卷积神经网络来辨识马和人

上一篇:《设计卷积神经网络CNN为什么不是编程?》 序言:我们已经踏入了设计人工智能(AI)模型的大门,有一个重要概念请大家务必记住:人工智能模型 = 架构 + 特征。任何一个AI模型都是先设计出架构,再通过数据训练获得特征。整合了特征的架构才算是一个完整的人工智能模型…

k8s~为pod添加节点的资源限制

CPU单位 CPU资源以CPU核心数为单位进行度量的。在Kubernetes中,一个CPU相当于: 1 AWS vCPU 1 GCP Core 1 Azure vCore 一个超线程(在使用超线程的裸金属Intel处理器上)请求0.5 CPU的容器所保证的CPU核数是请求节点上的1个CPU的一半。你可以用后缀m表示milli。例如100m CPU、10…

仪表数字图像AI视频分析预警

仪表数字图像AI视频分析预警系统利用AI人工智能机器视觉分析识别技术,仪表数字图像AI视频分析预警通过部署现场监控摄像头,实现对仪表盘读数和开关状态的自动识别。系统通过捕捉仪表盘图片,并运用AI算法分析处理这些图像,自动读取仪表盘上显示的数字。相比起传统的人工读数…

Zoho CRM软件优势解析,为何成为企业优选

Zoho CRM系统功能丰富,适用行业广,亮点包括高度可定制、无缝集成、价格实惠、全球支持和移动端应用,助力企业提高效率和客户满意度,推动业务增长。一、功能丰富且全面 1、销售自动化 一个高效的销售流程是任何企业成功的基础。Zoho CRM系统提供了全面的销售自动化功能,包括…

idea中怎么配置使用gitlab

idea中配置使用gitlab的步骤:1.安装Git;2.在GitLab上创建项目;3.配置GitLab账户;4.导入或克隆GitLab项目;5.提交和推送更改;6.解决冲突和合并请求。首先,确保您的计算机上安装了Git。您可以从Git官方网站下载适用于您操作系统的Git版本并进行安装。1.安装Git 首先,确保…

SLS:整层剪掉!基于降维特征聚类的PETL模型剪枝新方法 | ECCV24

来源:晓飞的算法工程笔记 公众号,转载请注明出处论文: Straightforward Layer-wise Pruning for More Efficient Visual Adaptation论文地址:https://arxiv.org/abs/2407.14330 论文代码:https://github.com/RuiZiHan/SLS创新点提出了一种针对PETL模型的剪枝方法SLS(Strai…

【JVM第5课】虚拟机栈

Java虚拟机栈(Java Virtual Machine Stack,简称JVM栈,又称Java方法栈)是 JVM 运行时数据区的一部分,主要用于支持Java方法的执行。每当一个新线程被创建时,JVM就会为这个线程分配一个私有的方法栈,线程执行过程中每个方法调用都会创建一个新的栈帧(Stack Frame),而这…

优化百万数据大量查询

百万数据分页查询接口,如何保证接口的性能?这就需要对该分页查询接口做优化了。这篇文章从9个方面跟大家一起聊聊分页查询接口优化的一些小技巧 1 增加默认条件 对于分页查询接口,如果没有特殊要求,我们可以在输入参数中,给一些默认值。这样可以缩小数据范围,避免每次都…

Scrum中文网研发的工具叫什么

Scrum中文网研发的工具叫做”敏捷猫”,这是一个基于Scrum理念和敏捷开发方法论所设计的项目管理工具,致力于帮助团队更好地实施敏捷开发,提高工作效率和产品质量。敏捷猫提供了全面的项目管理功能,包括任务创建、分配、跟踪和评估等,使项目管理变得更为简单和直观。Scrum中…