欢迎访问宙启技术站
智能推送

利用tqdm()库实现Python中循环进度的直观展示与控制

发布时间:2023-12-18 17:05:13

在Python中,tqdm是一个用于展示循环进度的库。它能够提供简单而直观的进度条,以及一些扩展功能,如估计剩余时间、平均速度等。

要使用tqdm库,首先需要安装它。可以使用pip工具来安装:

pip install tqdm

安装完成后,可以在Python代码中导入tqdm库:

from tqdm import tqdm

接下来,我们可以利用tqdm()函数来包装循环,并通过使用with语句进行管理:

with tqdm(total=<iterable_length>) as pbar:
    for item in <iterable>:
        # 运行一些操作
        pbar.update(1)

在上面的代码中,<iterable>是需要遍历的可迭代对象,<iterable_length>是可迭代对象的大小或长度。在每次循环的时候,我们通过调用pbar.update(1)来更新进度条。

下面我们来看一个具体的例子,假设我们要遍历一个列表,并对列表中的每个元素进行一些操作:

from tqdm import tqdm
import time

# 生成一个包含100个元素的列表
my_list = list(range(100))

with tqdm(total=len(my_list)) as pbar:
    for item in my_list:
        # 模拟一些运行耗时的操作
        time.sleep(0.1)
        # 在这里可以进行一些其他操作
        pbar.update(1)

在上面的例子中,我们遍历了一个包含100个元素的列表,并且通过调用time.sleep(0.1)来模拟每次循环的一些耗时操作。在每次循环中,我们都调用pbar.update(1)来更新进度条。

运行上述代码,就会看到一个直观的进度条在屏幕上显示出来,每完成一个循环,进度条就会相应地更新。

此外,tqdm还提供了一些扩展功能,例如估计剩余时间、平均速度等。可以通过调用pbar.set_postfix()方法来设置这些功能的显示。例如:

pbar.set_postfix(剩余时间='{:.2f}s'.format(pbar.total - pbar.n), 平均速度='{:.2f}it/s'.format(pbar.n / pbar.elapsed))

在上述代码中,我们通过调用pbar.set_postfix()方法来设置剩余时间和平均速度的显示。在字符串中,{:.2f}是格式化输出的一种方式,它将保留两位小数。

tqdm库非常易于使用,并且能够提供直观的循环进度展示。它是一个非常有用的工具,可以在需要长时间运行的循环中帮助我们更好地掌控进度。无论是在数据处理、模型训练还是其他长时间运行的任务中,tqdm都可以帮助我们更加高效地完成工作。