首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

每日一模块:tqdm

一、简介

tqdm(读作“tardy”)是一个快速、可扩展的Python进度条库,可以在长时间运行的循环中添加一个进度提示信息,用户只需要封装任意的迭代器tqdm(iterator)。tqdm库非常适合在数据处理、机器学习训练等需要长时间运行的任务中使用,通过提供直观的进度条来增强用户体验。

二、安装

首先,你需要安装tqdm模块。你可以使用pip命令来安装:

pip install tqdm

三、基本使用

1.基本用法

使用tqdm非常简单,只需要将你想要迭代的对象(如列表、元组、集合、文件对象等)传递给tqdm函数即可。

from tqdm import tqdm

import time

# 假设我们有一个包含10个元素的列表

my_list = list(range(10))

# 使用tqdm包装列表

for i in tqdm(my_list):

# 这里可以是任何长时间运行的任务,这里我们简单地用time.sleep模拟

time.sleep(0.1)

当你运行上面的代码时,你会在控制台看到一个动态的进度条,随着循环的迭代而更新。

2.自定义进度条

tqdm允许你自定义进度条的外观和格式。你可以通过desc参数设置进度条前的描述,total参数设置总进度,bar_format参数来自定义进度条的格式。

from tqdm import tqdm

import time

my_list = list(range(100))

# 自定义进度条

for i in tqdm(my_list, desc="Processing", total=len(my_list), bar_format="{desc}: {percentage:3.0f}%|{bar}| {n_fmt}/{total_fmt}"):

time.sleep(0.01)

3.嵌套循环

from tqdm import tqdm

import time

outer_list = list(range(5))

inner_list = list(range(10))

for i in tqdm(outer_list, desc="Outer loop"):

for j in tqdm(inner_list, desc="Inner loop"):

time.sleep(0.01)

4.手动更新进度条

如果你需要手动控制进度条的更新,可以使用tqdm的update()方法。

from tqdm import tqdm

import time

pbar = tqdm(total=100)

for i in range(100):

# 执行一些任务

time.sleep(0.01)

# 手动更新进度条

pbar.update(1)

pbar.close()

四、注意事项

• 当迭代对象的大小是未知的时候,tqdm可能无法正确地显示进度条,因为它不知道何时完成。在这种情况下,你可以使用total=None或者简单地不传递total参数。

• 如果你的代码在多线程或多进程环境中运行,每个线程或进程应该有自己的进度条实例,以避免混淆和竞争条件。

五、总结

tqdm是一个强大而灵活的Python库,用于在长时间运行的循环中添加进度提示。它简单易用,并提供了多种自定义选项,以满足不同的需求。在编写需要长时间迭代的任务时,使用tqdm可以极大地改善用户体验,帮助用户了解任务的进度。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/Oe2jtMx6HW_2E-ef0AQHQ8Hg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券