tqdm 是一个快速,可扩展的 Python 进度条,可以在 Python 长循环中添加一个进度提示信息,用户只需要封装任意的迭代器: tqdm(iterator)。
import time
from tqdm import tqdm
for i in tqdm(range(100)):
#do something
time.sleep(0.01)
输出结果:
100%|█████████████████████████████████████████| 100/100 [00:01<00:00, 98.27it/s]
显示描述信息:
import time
from tqdm import tqdm
for i in tqdm(range(100), desc='Processing'):
time.sleep(0.05)
输出结果:
Processing: 100%|█████████████████████████████| 100/100 [00:05<00:00, 19.87it/s]
tqdm(list) 方法可以传入任意一种list,比如string数组:
import time
from tqdm import tqdm
for char in tqdm(["a", "b", "c", "d"]):
#do something
time.sleep(0.08)
输出结果:
100%|█████████████████████████████████████████████| 4/4 [00:00<00:00, 12.47it/s]
在for循环外部初始化 tqdm,可以打印其他信息:
import time
from tqdm import tqdm
bar = tqdm(["a", "b", "c", "d"])
for char in bar:
bar.set_description("Processing %s" % char)
time.sleep(1)
输出结果:
Processing d: 100%|███████████████████████████████| 4/4 [00:04<00:00, 1.00s/it]
trange(i) 是 tqdm(range(i)) 的简单写法:
import time
from tqdm import trange
for i in trange(100):
#do something
time.sleep(0.02)
输出结果:
100%|█████████████████████████████████████████| 100/100 [00:02<00:00, 49.33it/s]
手动设置每次更新的步长:
import time
from tqdm import tqdm
with tqdm(total=200) as pbar:
pbar.set_description('Processing')
# 手动设置:每次更新10个进度,一共更新20次,总共更新total:200
for i in range(20):
# 进行动作, 这里是过0.1s
time.sleep(0.1)
# 进行进度更新, 这里设置10个
pbar.update(10)
输出结果:
Processing: 100%|█████████████████████████████| 200/200 [00:02<00:00, 99.57it/s]