📜  Python – 使用 tqdm 模块创建进度条(1)

📅  最后修改于: 2023-12-03 15:19:04.672000             🧑  作者: Mango

Python - 使用 tqdm 模块创建进度条

在 Python 中使用进度条可以对长时间运行的任务进行可视化,帮助我们更好地了解程序的执行情况。tqdm 是一个用于创建进度条的 Python 模块,本文将介绍如何使用它来创建进度条。

安装 tqdm

在开始使用 tqdm 前,需要先安装该模块。可以使用 pip 在命令行中安装:

pip install tqdm
使用 tqdm

使用 tqdm 创建进度条非常容易。下面是一个简单的例子,用于展示如何使用 tqdm:

from tqdm import tqdm
import time

for i in tqdm(range(100)):
    time.sleep(0.1)

上述代码将会创建一个长达 100 秒的进度条,每秒钟更新一次。tqdm 自动计算并显示进度条的完成度。

进度条样式

tqdm 提供了丰富的进度条样式,可以根据自己的需求进行选择。下面是一些可选的进度条样式:

# 选择样式为 "bar"
tqdm(range(100), bar_format='{l_bar}{bar:20}{r_bar}{bar:-10b}')

# 选择样式为 "spinner"
tqdm(range(100), bar_format='{l_bar}{bar}{r_bar}', spinner='arrow3')

# 选择样式为 "fancy"
tqdm(range(100), bar_format='{l_bar}{bar}{r_bar}', dynamic_ncols=True)

每个样式都可根据自己的需求进行定制,例如设置进度条长度、动态变化列数等。

进度条嵌套

有时候,需要创建嵌套的进度条来显示程序运行时的任务进度。tqdm 提供了 nestding 参数来实现进度条的嵌套。下面是一个简单的例子:

from tqdm import tqdm
import time

for i in tqdm(range(10), desc='outer'):
    for j in tqdm(range(100), desc='inner', leave=False):
        time.sleep(0.01)

上述代码将会创建一个形如“嵌套外部进度条 -> 嵌套内部进度条”的进度条。嵌套进度条可以根据需求进行层数设置,进一步提升任务可读性。

进度条定制化

除了上述功能以外,tqdm 还提供了许多有用的参数用于定制化进度条。例如可以通过设置 dynamic_ncols 参数来动态调整进度条长度:

tqdm(range(100), dynamic_ncols=True)

或是通过设置 leave 参数来在任务完成后保留进度条:

tqdm(range(100), leave=True)

以及许多其他可用的参数。以上只是功能中的一部分,大家可以根据自己的需求进行进一步的探索。