玩转Python第三方库库tqdm

使用方法一: tqdm

tqdm(list)方法可以传入任意一种list,比如数组,同时tqdm中不仅仅可以传入list, 同时可以传入所有带len方法的可迭代对象,这里只以list对象为例:

from tqdm import tqdm
from time import sleep

for i in tqdm(range(1000)):
     sleep(0.1)
 61%|██████▏   | 614/1000 [01:01<00:38,  9.93it/s]

或是:

from tqdm import tqdm
from time import sleep

for i in tqdm(['a', 'b', 'c', 'd', 'e']):  
     sleep(0.1)
  0%|          | 0/5 [00:00 
  

使用方法二: trange

trange(i) 是 tqdm(range(i)) 的等价写法

from tqdm import trange
from time import sleep

for i in trange(10):
     sleep(1)
  0%|          | 0/10 [00:00 
  

使用方法三:   改变循环信息

from tqdm import trange, tqdm
from time import sleep


pbar = tqdm(range(1000))
for char in pbar:
    pbar.set_description("Processing %s" % char)
    sleep(1)

或是:

from tqdm import trange, tqdm
from time import sleep


pbar = trange(10)
for char in pbar:
    pbar.set_description("Processing %s" % char)
    sleep(1)
 0%|          | 0/10 [00:00 
  

或是

from tqdm import trange, tqdm
from time import sleep


for i in tqdm(range(100), desc='1st loop'):
        sleep(1)
1st loop:   0%|          | 0/10 [00:00 
  

实际操作中发现    desc(str)   比    set_description   好用。

使用方法四   手动控制进度:

import time
from tqdm import tqdm

# 一共200个,每次更新10,一共更新20次
with tqdm(total=200) as pbar:
  for i in range(20):
    pbar.update(10) 
    time.sleep(0.1)
 0%|          | 0/200 [00:00 
  

或是:

pbar = tqdm(total=200)  
for i in range(20):  
    pbar.update(10)
    time.sleep(0.1)
# close() 不要也没出问题
pbar.close()
 0%|          | 0/200 [00:00 
  

 

可以显示循环的进度条的库,再也不用担心不知道程序跑到哪里还要跑多久了
tqdm()可以直接包裹iterable的对象


from tqdm import tqdm,trange
from time import sleep
text = ""
for char in tqdm(["a", "b", "c", "d"]):
    text = text + char
    sleep(0.1)
  0%|          | 0/4 [00:00 
  

trange(i)相当于tqdm(range(i))

for i in trange(100):
    sleep(0.01)

可以在循环外面预先定义tqdm的对象

pbar = tqdm(["a", "b", "c", "d"])
for char in pbar:
    pbar.set_description("Processing %s" % char)

 

有两个参数比较有用,desc(str)和leave(bool)
desc可以指定这个循环的的信息,以便区分。上面的set_description(str)和这个应该是一样的。
leave则表示进度条跑完了之后是否继续保留

for i in tqdm(range(10), desc='1st loop'):
    for j in trange(100, desc='2nd loop', leave=False):
        sleep(0.01)

 

如果要在Jupyter Notebook上面使用,那么要把tqdm换成tqdm_notebook,trange换成tnrange

from tqdm import tnrange, tqdm_notebook
from time import sleep

for i in tqdm_notebook(range(10), desc='1st loop'):
    for j in tnrange(100, desc='2nd loop', leave=False):
        sleep(0.01)

 

参考网址

https://blog.csdn.net/zejianli/article/details/77915751

https://www.cnblogs.com/devilmaycry812839668/p/10203895.html

 

你可能感兴趣的:(Python)