Python中tqdm模块的常用方法和示例
tqdm
是一个快速,可扩展的Python进度条库,可以在 Python 长循环中添加一个进度提示信息,用户只需要封装任意的迭代器 tqdm(iterator)
。
下面是一个基本的使用示例:
from tqdm import tqdm
import time
# 这是一个简单的例子,使用 tqdm 封装 range
for i in tqdm(range(100)):
time.sleep(0.01) # 模拟你的任务需要一些时间
在上述代码中,tqdm(range(100))
会返回一个可迭代的对象,每次迭代时,进度条会自动更新。time.sleep(0.01)
是为了模拟每个迭代步骤需要花费一些时间。
你还可以定制进度条的显示:
from tqdm import tqdm
import time
for i in tqdm(range(100), desc="处理进度", ncols=100):
time.sleep(0.01) # 模拟你的任务需要一些时间
在这个例子中,desc
参数用于设置进度条的描述,ncols
参数用于设置进度条的宽度。
tqdm
还支持嵌套循环:
from tqdm import tqdm
import time
for i in tqdm(range(10), desc='主要进度', position=0):
for j in tqdm(range(100), desc='次要进度', position=1, leave=False):
time.sleep(0.001) # 模拟你的任务需要一些时间
在这个例子中,我们有两个嵌套的进度条。外部的进度条描述了主要的进度,内部的进度条描述了次要的进度。position
参数用于设置进度条的位置,leave
参数设置为 False
意味着当次要进度完成时,它的进度条会立即消失,不会留下空白的行。
注意:在 Jupyter notebook 或 IPython 中使用 tqdm
时,需要使用 tqdm.notebook.tqdm
替代 tqdm.tqdm
以获得更好的显示效果。但在较新的版本中,tqdm
已经可以自动检测环境并进行相应的显示,所以直接使用 tqdm
即可。
另外,tqdm
不仅可以用于 range 等可迭代对象,还可以用于任何可迭代对象,如列表,元组,字典,集合,生成器等。