
作者:闲欢
来源:Python 技术
作为程序员,我们经常会遇到比较耗时的操作,这个时候我们大多数人会无助地等待程序执行完成,有些人会趁机摸一下鱼,以便渡过这个无聊看起来又有点未知的时间,我就是这样做的。
但是,我们也可以选择另一种方式——用一个炫酷的进度条,来观察处理进度,也可以及时了解程序运行的情况,做到心中有数。
今天就给大家介绍 Python 的一个库—— tqdm ,它就能非常完美的支持和解决这些问题,可以实时输出处理进度而且占用的CPU资源非常少,支持windows、Linux、mac等系统,支持循环处理、多进程、递归处理、还可以结合linux的命令来查看处理情况,等进度展示。
我们常见的安装方式是直接 pip 安装:
pip install tqdm
但是我用这种方式安装的时候报错:
看报错的意思是这个 pypi.org 不是可信网站,于是我加上了:
pip install tqdm --trusted-host pypi.org
结果还是这个报错。
这有点无语了。我接着尝试使用豆瓣的源来进行安装:
pip install -i https://pypi.douban.com/simple tqdm
还是一样的报错。
但是我浏览器访问这个网站没问题:https://pypi.org/project/tqdm/
既然这样,我就把文件下载下来再安装吧。
下载下来之后,我将 whl 文件放在我的项目目录,然后使用命令行安装:
pip install --trusted-host pypi.org tqdm-4.62.3-py2.py3-none-any.whl
这回安装没报错。我再用命令检查一下安装是否成功:
pip show tqdm
命令行成功显示信息:
Name: tqdm Version: 4.62.3 Summary: Fast, Extensible Progress Meter Home-page: https://tqdm.github.io Author: None Author-email: None License: MPLv2.0, MIT Licences Location: c:pworkspacemypyvenvlibsite-packages Requires: colorama Required-by:
折腾了半天,终于安装成功了!
本文的示例都是在 jupyter notebook 环境下运行的,不同环境运行的效果会有差别。
我们进入 tqdm 的源码,可以找到 __init__ 方法:
def __init__(self, iterable=None, desc=None, total=None, leave=True, file=None,
ncols=None, mininterval=0.1, maxinterval=10.0, miniters=None,
ascii=None, disable=False, unit='it', unit_scale=False,
dynamic_ncols=False, smoothing=0.3, bar_format=None, initial=0,
position=None, postfix=None, unit_divisor=1000, write_bytes=None,
lock_args=None, nrows=None, colour=None, delay=0, gui=False,
**kwargs):
从中我们可以看到 tqdm 支持很多参数,下面列一些常见的参数:
直接将可迭代对象传入作为参数,我们来看一下例子:
from tqdm import tqdm from time import sleep for char in tqdm(['h', 'e', 'l', 'l', 'o']):
sleep(0.25) for i in tqdm(range(100)):
sleep(0.05)
实现的进度条效果如下:
这里面的 tqdm(range()) 我们也可以用 tqdm 提供的 trange() 来代替,可以简化代码。
from tqdm.notebook import trange for i in trange(100):
sleep(0.05)
实现的进度条效果如下:
我们还可以为进度条添加描述:
pbar = tqdm(range(5)) for char in pbar:
pbar.set_description("Progress %d" %char) sleep(1)
实现的进度条效果如下:
接下来,我要改变一下进度条的颜色:
我们可以使用 with 语句来手动控制进度条。
with tqdm(total=100) as pbar: for i in range(1, 5): sleep(1) # 更新进度 pbar.update(10*i)
这里我设置进度条的更新的间隔,设置总数为 total=100,然后分四次,使得进度条按 10%,20%,30%,40%的间隔来更新。
实现的进度条效果如下:
接下来, 我要改变一下进度条的颜色:
with tqdm(total=100, colour='yellow') as pbar: for i in range(1, 5): sleep(1) # 更新进度 pbar.update(10*i)
我把进度条改为了黄色。
接下来,我们来个嵌套进度条玩玩。
for i in trange(3, desc='outer loop'): for i in trange(100, desc='inner loop', leave=False): sleep(0.01)
这里我用两层 for 循环实现了嵌套,并且将内层的 参数 leave 设置为 False ,意思是内层的进度条每执行一次都会消失。
我们来看看最终运行的效果:
这个进度条库的使用方法是不是很简单,几行代码就能为我们的程序增色不少。心动不如行动,赶快用起来吧!
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
训练与验证损失骤升:机器学习训练中的异常诊断与解决方案 在机器学习模型训练过程中,“损失曲线” 是反映模型学习状态的核心指 ...
2025-09-19解析 DataHub 与 Kafka:数据生态中两类核心工具的差异与协同 在数字化转型加速的今天,企业对数据的需求已从 “存储” 转向 “ ...
2025-09-19CDA 数据分析师:让统计基本概念成为业务决策的底层逻辑 统计基本概念是商业数据分析的 “基础语言”—— 从描述数据分布的 “均 ...
2025-09-19CDA 数据分析师:表结构数据 “获取 - 加工 - 使用” 全流程的赋能者 表结构数据(如数据库表、Excel 表、CSV 文件)是企业数字 ...
2025-09-19SQL Server 中 CONVERT 函数的日期转换:从基础用法到实战优化 在 SQL Server 的数据处理中,日期格式转换是高频需求 —— 无论 ...
2025-09-18MySQL 大表拆分与关联查询效率:打破 “拆分必慢” 的认知误区 在 MySQL 数据库管理中,“大表” 始终是性能优化绕不开的话题。 ...
2025-09-18DSGE 模型中的 Et:理性预期算子的内涵、作用与应用解析 动态随机一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明确:TIF 中的地名有哪两种存在形式? 在开始提取前,需先判断 TIF 文件的类型 —— ...
2025-09-17CDA 数据分析师:解锁表结构数据特征价值的专业核心 表结构数据(以 “行 - 列” 规范存储的结构化数据,如数据库表、Excel 表、 ...
2025-09-17Excel 导入数据含缺失值?详解 dropna 函数的功能与实战应用 在用 Python(如 pandas 库)处理 Excel 数据时,“缺失值” 是高频 ...
2025-09-16深入解析卡方检验与 t 检验:差异、适用场景与实践应用 在数据分析与统计学领域,假设检验是验证研究假设、判断数据差异是否 “ ...
2025-09-16CDA 数据分析师:掌控表格结构数据全功能周期的专业操盘手 表格结构数据(以 “行 - 列” 存储的结构化数据,如 Excel 表、数据 ...
2025-09-16MySQL 执行计划中 rows 数量的准确性解析:原理、影响因素与优化 在 MySQL SQL 调优中,EXPLAIN执行计划是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 对象的 text 与 content:区别、场景与实践指南 在 Python 进行 HTTP 网络请求开发时(如使用requests ...
2025-09-15CDA 数据分析师:激活表格结构数据价值的核心操盘手 表格结构数据(如 Excel 表格、数据库表)是企业最基础、最核心的数据形态 ...
2025-09-15Python HTTP 请求工具对比:urllib.request 与 requests 的核心差异与选择指南 在 Python 处理 HTTP 请求(如接口调用、数据爬取 ...
2025-09-12解决 pd.read_csv 读取长浮点数据的科学计数法问题 为帮助 Python 数据从业者解决pd.read_csv读取长浮点数据时的科学计数法问题 ...
2025-09-12CDA 数据分析师:业务数据分析步骤的落地者与价值优化者 业务数据分析是企业解决日常运营问题、提升执行效率的核心手段,其价值 ...
2025-09-12用 SQL 验证业务逻辑:从规则拆解到数据把关的实战指南 在业务系统落地过程中,“业务逻辑” 是连接 “需求设计” 与 “用户体验 ...
2025-09-11塔吉特百货孕妇营销案例:数据驱动下的精准零售革命与启示 在零售行业 “流量红利见顶” 的当下,精准营销成为企业突围的核心方 ...
2025-09-11