用tqdm显示进度条
tdqm用法
显示进度条
from tqdm import tqdm
pbar = tqdm(total=重复次数, dynamic_ncols=True, initial=0)
for i in range(重复次数):
pbar.set_description_str(前缀字符串)
# 等价于写 pbar.desc = 前缀字符串
pbar.set_postfix_str(后缀字符串)
# 等价于写 pbar.postfix = 后缀字符串
pbar.update()
pbar.close()
prefix: 85%|█████████████▏ | 85/100 [00:08<00:01, 9.94it/s, suffix]
常用参数:
dynamic_ncols
:默认False,请选为True以使终端宽度变化时,进度条会随着变化
dynamic_ncols |
终端窗口变窄` | 终端窗口变宽 |
---|---|---|
False | 1. 很多行,输出长度都是原窗口的宽度 | 2. 输出长度不随着窗口变宽而增加 |
True | 3. 原有的一行保留,然后空一行,在另起一行适配性的窗口输出 | 4. 输出长度随着窗口变宽而增加 |
initial
:进度条初始值,默认为0
退出时清除此进度条
pbar.close()
时保留此进度条
pbar = tqdm(total=重复次数, leave=True)
pbar = tqdm(total=重复次数) # default leave=True
pbar.close()
时清除此进度条
pbar = tqdm(total=重复次数, leave=False)
多个进度条并行
使用position
参数,从0开始计算,position越大打印出来所在行最下
pbar0 = tqdm(total=重复次数, leave=False, position=0)
pbar1 = tqdm(total=重复次数, leave=False, position=1)
pbar3 = tqdm(total=重复次数, leave=False, position=2)
## 同时更新pbar0,pbar1,pbar3
pbar0.close()
pbar1.close()
pbar2.close()
示例
from tqdm import tqdm
fruits = ['apple', 'banana', 'orange']
pbars = {fruit: tqdm(total=100, leave=False, position=0)
for fruit in fruits}
for i in range(300):
fruit = fruits[i%3]
pbars[fruit].set_description_str(fruit)
pbar.set_postfix_str(i)
pbars[fruit].update()
for pbar in pbars:
pbar.close()
apple: 27%|████████████▋ | 27/100 [00:07<00:22, 3.32it/s, 78] banana: 26%|███████████▉ | 26/100 [00:07<00:22, 3.32it/s, 76] orange: 26%|███████████▉ | 26/100 [00:07<00:22, 3.32it/s, 77]
显示实时更新的字符串
from tqdm import tqdm
pbar = tqdm(bar_format='{desc}') # 即不要进度条,只有description_str的意思
for i in range(重复次数):
pbar.set_description_str(字符串)
pbar.update()
pbar.close()
例如
from tqdm import tqdm
pbar = tqdm(bar_format='{desc}')
for i in range(100):
sleep(0.1)
pbar.set_description_str('prefix %d'%i)
pbar.update()
pbar.close()
prefix 24