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

使用tqdm()实现进度条显示的技巧

发布时间:2023-12-28 12:13:36

tqdm是一个快速、可扩展的Python进度条库,可用于实时显示循环过程的进度。它非常易于使用,并且可以根据需要自定义进度条的样式和文本信息。下面将介绍一些使用tqdm()的技巧,并提供一些使用例子。

1. 基本使用方法

基本的使用方法是将迭代对象作为参数传递给tqdm()函数。在循环过程中,每次迭代时,都要调用tqdm.update()函数来更新进度条和相关的文本信息。

from tqdm import tqdm
import time

# 创建一个迭代对象
data = range(10)

# 使用tqdm()包装迭代对象
for item in tqdm(data):
    # 模拟一个耗时操作
    time.sleep(0.1)
    # 更新进度条
    tqdm.update()

2. 显示进度信息

tqdm可以显示进度条以外的其他文本信息,例如总体进度、估计剩余时间等。可以使用tqdm.set_description()和tqdm.set_postfix()函数来设置这些信息。

from tqdm import tqdm
import time

data = range(10)

# 设置进度条样式
with tqdm(total=len(data)) as pbar:
    for item in data:
        time.sleep(0.1)
        pbar.update()
        # 设置进度信息
        pbar.set_description(f"Processing item {item}")
        pbar.set_postfix({"progress": item / len(data)})

3. 处理多个迭代器

tqdm可以同时处理多个迭代器。可以使用tqdm.tqdm()函数将多个迭代器作为参数传递给它。

from tqdm import tqdm
import time

data1 = range(5)
data2 = range(5, 10)

# 使用tqdm()处理多个迭代器
for item1, item2 in tqdm(zip(data1, data2), total=len(data1)):
    time.sleep(0.1)
    tqdm.update()

4. 改变进度条样式

tqdm提供了多种进度条样式供选择。可以使用tqdm.set_postfix_str()函数来设置不同的样式。

from tqdm import tqdm
import time

data = range(10)

# 设置不同的进度条样式
with tqdm(total=len(data), bar_format="{l_bar}{bar} {n_fmt}/{total_fmt}") as pbar:
    for item in data:
        time.sleep(0.1)
        pbar.update()

5. 自定义进度条样式

如果希望自定义进度条的样式,可以使用自定义的format对象来设置。可以参考tqdm文档中的format specification部分了解更多详情。

from tqdm import tqdm
import time

data = range(10)

# 使用自定义的format对象设置进度条样式
with tqdm(total=len(data), bar_format="{desc}: {percentage:.0f}%|{bar}| {n_fmt}/{total_fmt}") as pbar:
    for item in data:
        time.sleep(0.1)
        pbar.update()

以上是一些使用tqdm()实现进度条显示的技巧和示例。tqdm是一个非常方便的工具,可用于跟踪和显示循环过程的进度,使代码更具可读性和可维护性。详细的用法和更多示例可以参考tqdm的官方文档。