tqdm(阿拉伯语"taqaddum"的缩写,意为"进展")是Python中一个用于在循环中显示进度条的库。它提供了一种简单而又灵活的方式来监测代码执行的进度,特别是在处理大量数据或耗时较长的任务时非常有用。
1、安装
要使用tqdm库,首先需要安装它。可以使用pip包管理器在命令行中运行以下命令进行安装:
pip install tqdm
2、示例
安装完成后,就可以在Python脚本中导入tqdm库并使用其中的tqdm函数。以下是使用tqdm库的基本示例:
from tqdm import tqdm
import time
# 创建一个迭代对象
data = range(10)
# 使用tqdm包装迭代对象
for item in tqdm(data):
# 模拟耗时操作
time.sleep(0.1)
在上面的示例中,我们首先从tqdm库中导入tqdm函数,并导入time模块用于模拟耗时操作。然后,我们创建一个包含10个元素的迭代对象data
,并使用tqdm函数来包装这个迭代对象。
在循环中,每次迭代时,tqdm函数会自动更新进度条,显示当前的进度和估计的剩余时间。在每次迭代之间,我们使用time.sleep(0.1)
函数来模拟一个耗时操作。
3、参数介绍
使用tqdm的优点是它提供了一个简洁而美观的进度条,同时还可以根据需要自定义进度条的样式和显示信息。tqdm库提供了许多参数,用于自定义和调整进度条的外观、格式和行为。以下是一些常用参数的解释:
- iterable:要迭代的对象,可以是列表、元组、集合等可迭代对象。
- desc:进度条的描述文本,显示在进度条的左侧。
- total:迭代对象的总大小,用于计算进度百分比。如果不指定,则进度条将根据迭代对象的长度自动确定。
- leave:进度条完成后是否保留在输出中。值为True或False。
- ncols:进度条的宽度(以字符为单位),用于限制进度条的宽度。如果ncols的值为正整数N(N > 0),则进度条的宽度将被限制为N个字符。默认情况下或者ncols的值为0、负数或None,则进度条的宽度将根据终端的宽度自动调整。
- bar_format:进度条的样式格式字符串。它可以包含特定的占位符,例如"{l_bar}{bar}{r_bar}"表示左边的文本、进度条本身和右边的文本。你可以在占位符中添加自定义的文本或符号来美化进度条。
- unit:进度条的单位名称,用于显示在进度百分比后面。例如,如果单位为"bytes",则进度条将显示为"10/100 bytes"。
- unit_divisor:进度条的单位除数,默认为1。可以用于将进度条的单位转换为更适合显示的单位格式。例如,如果单位为"bytes",但实际值是以KB为单位的,你可以将unit_divisor设置为1024,以便显示为"10/100 KB"。
- color:进度条的颜色,可以是ANSI颜色代码或预定义的颜色名称。ANSI颜色代码如,“\033[31m”表示红色,“\033[32m”表示绿色。tqdm库还提供了一些预定义的颜色名称,包括:black、red、green、yellow、blue、magenta、cyan、white。(如果设置颜色会报错,那可能是终端不支持)
from tqdm import tqdm
import time
data = range(10)
for item in tqdm(data, desc='输出0-9', ncols=100, unit="次循环"):
# 模拟耗时操作
time.sleep(0.1)
4、更多
除了基本的用法外,tqdm还提供了其他功能,例如在多线程/多进程环境中使用、显示剩余时间的估计、计时器等。可参考:https://github.com/tqdm/tqdm