Python tqdm使用方法

简介: Python tqdm使用方法

0. 前言

学习深度学习神经元网络时接触到tqdm模块,在训练大型网络时需要等很长时间,tqdm能把训练的进度及预估完成时间可视化展现出来。推而广之,只要在涉及到大型循环运行的代码,tqdm模块都是一个很好用的可视化进度条工具。对于用户来说,看到进度条可以让他们了解任务正在进行,而不是程序卡住或无响应。这提高了用户对应用程序的信任和满意度。

1. tqdm介绍

tqdm是阿拉伯语taqaddum(意为“进度”)的缩写,也是西班牙语“I love you so much”的缩写

tqdm derives from the Arabic word taqaddum (تقدّم) which can mean “progress,” and is an abbreviation for “I love you so much” in Spanish (te quiero demasiado).

tqdm是一个在Python中广泛使用的进度条库。以下是对tqdm库的主要特点和使用介绍:

1.1 功能:
  • tqdm提供了一个直观的命令行进度条,可以在循环或迭代过程中显示任务的完成进度。
  • 进度条会动态更新,显示已处理的项数、总体估计时间和剩余时间等信息。
  • 它可以与任何迭代器或生成器一起使用,只需要将迭代器包裹在tqdm(iterator)函数中即可。
1.2 易用性:
  • 使用tqdm非常简单,无需复杂的配置,只需在需要显示进度的地方插入一行代码即可。
  • 它可以无缝集成到你的代码中,不需要对现有逻辑进行重大修改。
1.3 定制化:
  • tqdm允许用户自定义进度条的样式和行为,包括但不限于:
  • 设置总体任务的数量(如果已知)。
  • 修改显示格式,包括显示百分比、ETA(预计到达时间)、速度等。
  • 设置进度条的颜色、大小和位置。
  • 添加自定义消息和标签。
1.4 并行支持:
  • tqdm支持多线程和多进程的进度跟踪,可以方便地在并行计算环境中显示各个任务的进度。
1.5 智能暂停和恢复:
  • 当终端输出被其他内容覆盖时,tqdm可以智能地暂停和恢复进度条的显示。
1.6 适应性强:
  • tqdm可以在各种环境下工作,包括Jupyter Notebook、IPython console、普通的命令行界面等。

2. tqdm使用实操

2.1 循环进度跟踪

非常简单,只要把要循环的内容嵌套在tqdm中即可,例:

from tqdm import tqdm
import time
 
l = ['a','b','c','d','e']
 
for i in tqdm(range(5)):
    print(i)
    time.sleep(1)
    for j in tqdm(l):
        time.sleep(1)

这样就可以看到循环语句的进度条了:

这里可以看到相关的时间参数:已进行时间/剩余预估时间/每次循环需要时间。

2.2 并行计算进度跟踪

tqdm也支持并行计算的进度跟踪。

from concurrent.futures import ThreadPoolExecutor
from tqdm import tqdm
 
def long_running_task(num):
    time.sleep(0.1)  # 模拟耗时操作
    return num * num
 
with ThreadPoolExecutor() as executor:
    futures = {executor.submit(long_running_task, num) for num in range(100)}
    
    for future in tqdm(as_completed(futures), total=len(futures)):
        result = future.result()
        print(result)

在这个例子中,我们使用了concurrent.futures库进行多线程计算,并使用tqdm来跟踪每个任务的完成情况。as_completed函数返回的是一个生成器,我们可以将其传递给tqdm来显示进度条。

2.3 tqdm自定义参数

可以通过传递参数来自定义进度条的行为和样式。

from tqdm import tqdm
import time
 
# 设置总任务数为100
total_tasks = 100
 
# 自定义进度条的描述信息和单位
for i in tqdm(range(total_tasks), desc='Processing tasks', unit='task'):
    time.sleep(0.1)  # 模拟耗时操作
 
# 设置进度条的样式和格式
for i in tqdm(range(total_tasks), bar_format='{l_bar}{bar}| {n_fmt}/{total_fmt} [elapsed: {elapsed} remaining: {remaining}]'):
    time.sleep(0.1)

在这个例子中,我们设置了进度条的描述信息为"Processing tasks",单位为"task"。在第二个循环中,我们还修改了进度条的显示格式,包括当前进度、总任务数、已用时间和剩余时间。


相关文章
|
11月前
|
开发工具 git Python
python之 libnum库安装使用方法
python之 libnum库安装使用方法
536 0
|
6月前
|
JSON JavaScript 前端开发
Python中使用JsonPath:概念、使用方法与案例
Python中使用JsonPath:概念、使用方法与案例
255 0
|
24天前
|
Python
Python中tqdm模块的常用方法和示例
`tqdm` 是一个快速、可扩展的Python进度条库,适用于长循环中添加进度提示。通过封装迭代器 `tqdm(iterator)`,可以轻松实现进度显示。支持自定义描述、宽度及嵌套进度条,适用于多种迭代对象。在Jupyter notebook中,可自动调整显示效果。
26 0
|
3月前
|
数据处理 Python
【Python】解决tqdm ‘module‘ object is not callable
在使用tqdm库时遇到的“'module' object is not callable”错误,并给出了正确的导入方式以及一些使用tqdm的常见示例。
106 1
|
4月前
|
开发者 Python
Python函数与模块使用方法
【7月更文挑战第24天】Python 是一种功能强大的编程语言,拥有丰富的函数和模块,使得开发者能够轻松地构建复杂的应用程序。本文将介绍 Python 中函数和模块的基本使用方法,并提供一些代码实例。
44 3
|
3月前
|
Python
Python 进度条 tqdm模块
Python 进度条 tqdm模块
23 0
|
5月前
|
定位技术 Python
Python的try、except异常处理模块使用方法
所以,我们就解决了由于可能具有的arcpy.ExecuteError异常而导致的程序中断问题;大家在实际使用时,按照自己程序中可能出现的报错类,对本文出现的arcpy.ExecuteError异常类加以修改即可。
|
4月前
|
UED Python
tqdm进度条函数使用 python
tqdm进度条函数使用 python
|
4月前
|
安全 Java 开发者
Python中的多线程高级使用方法
**Python多线程高级指南摘要** 本文探讨了Python中多线程的高级技术,尽管GIL限制了并行执行,但多线程仍适用于IO密集型任务和提升UI响应。内容包括: - 使用`threading`模块导入和创建线程,示例展示了如何启动多个线程执行函数。 - 高级用法涉及线程池,通过`ThreadPoolExecutor`管理线程,简化大量线程的创建和控制。 - 线程同步:介绍锁和条件变量的概念,以及如何使用它们确保数据一致性。 - 避免死锁的策略,如使用`try/finally`确保锁的正确释放 - 线程局部数据(Thread Local Data)允许每个线程拥有独立的数据副本,避免冲突
3个常用的Python性能分析工具及其使用方法
以下是几个常用的性能分析工具及其使用方法和常用命令: