Tqdm 是一个快速,可扩展的Python进度条,可以在 Python 长循环中添加一个进度提示信息,用户只需要封装任意的迭代器 tqdm(iterator)。
tqdm的原理是每循环一次更新一次信息,因此要配合循环语句加迭代器使用
tqdm(list)方法可以传入任意一种list,比如数组
from tqdm import tqdm
for i in tqdm(range(1000)):
#do something
pass
或string的数组
for char in tqdm(["a", "b", "c", "d"]):
#do something
pass
100%|█████████████████████████████████████████████████████████████████████████| 1000/1000 [00:00<00:00, 1001266.17it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████| 4/4 [00:00<?, ?it/s]
trange(i) 是 tqdm(range(i))的简单写法
from tqdm import trange
for i in trange(100):
#do something
pass
100%|████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:00<?, ?it/s]
for循环外部初始化tqdm,可以打印其他信息
pbar = tqdm(["a", "b", "c", "d"])
for char in pbar:
pbar.set_description("Processing %s" % char)
0%| | 0/4 [00:00<?, ?it/s]
Processing a: 0%| | 0/4 [00:00<?, ?it/s]
Processing b: 0%| | 0/4 [00:00<?, ?it/s]
Processing c: 0%| | 0/4 [00:00<?, ?it/s]
Processing d: 0%| | 0/4 [00:00<?, ?it/s]
Processing d: 100%|█████████████████████████████████████████████████████████████████████| 4/4 [00:00<00:00, 211.08it/s]
更好的写法是使用,wita tqdm() as pbar:
from tqdm import tqdm
import time
with tqdm(total=100, desc='这是进度条的前缀',postfix='这是进度条的后缀',mininterval=0.3) as pbar:
for i in range(100):
time.sleep(0.1) # 休眠0.1s
pbar.update(1)
- total:进度条的总长度
- desc:进度条的前缀
- postfix:进度条的后缀
- minterval:进度条的最小更新时间间隔,
pbar.update(1)代表代码运行到这里进度条加1,pbar.update(2)就代表加2。但进度条的状态更新还要看参数niminterval,若不设置该参数,则就是运行到pbar.update处就马上更新。
需要使用updtae()更新显示