一、什麼是tqdm和enumberate?
tqdm是一個Python進度條庫,可以在循環時自動創建進度條,讓任務執行更加可視化。簡單使用tqdm的方法如下所示:
from tqdm import tqdm for i in tqdm(range(1000000)): pass
執行過程中會在命令行自動創建一個進度條,如下所示:
100%|██████████| 1000000/1000000 [00:01<00:00, 961178.26it/s]
enumberate是Python內置的函數,可以同時獲取循環中元素的值和索引。簡單使用enumberate的方法如下所示:
a = ['a', 'b', 'c'] for index, value in enumberate(a): print(index, value)
輸出結果:
0 a 1 b 2 c
二、使用tqdm和enumberate實現循環進度條
使用tqdm和enumberate可以非常方便地實現循環進度條,代碼如下所示:
import time from tqdm import tqdm a = ['a', 'b', 'c'] for index, value in tqdm(enumerate(a)): time.sleep(1)
執行過程中會在命令行自動創建一個進度條,如下所示:
33%|███▎ | 1/3 [00:01<00:02, 1.02s/it] 67%|██████▋ | 2/3 [00:02<00:01, 1.02s/it] 100%|██████████| 3/3 [00:03<00:00, 1.02s/it]
可以看到,每次循環都會自動更新進度條,顯示當前循環的進度。
三、自定義進度條的樣式
tqdm默認使用的是ascii字符作為進度條的樣式,如下所示:
import time from tqdm import tqdm a = ['a', 'b', 'c'] for index, value in tqdm(enumerate(a)): time.sleep(1)
輸出結果:
33%|███▎ | 1/3 [00:01<00:03, 1.02s/it] 67%|██████▋ | 2/3 [00:02<00:01, 1.03s/it] 100%|██████████| 3/3 [00:03<00:00, 1.03s/it]
如果想要改變進度條的樣式,可以通過tqdm的參數進行自定義。tqdm提供了五種樣式供選擇,分別是”ascii”, “ascii-ext”, “unicode”, “unicode-l1”, “ncurses”。使用方法如下所示:
import time from tqdm import tqdm a = ['a', 'b', 'c'] # 通過tqdm參數設置進度條樣式 for index, value in tqdm(enumerate(a), bar_format="{l_bar}%s{bar}%s{r_bar}" % (Fore.BLUE, Fore.RESET)): time.sleep(1)
其中,bar_format參數可以用來自定義進度條的樣式。可以在進度條前後添加任何需要的字符,例如可以添加顏色,如上面代碼中的”{l_bar}%s{bar}%s{r_bar}” % (Fore.BLUE, Fore.RESET),使用了tqdm內置的顏色庫,將進度條設置為藍色。
四、結語
tqdm和enumberate是兩個非常實用的Python庫和函數,在Python編程中經常使用。結合使用tqdm和enumberate可以非常方便地創建循環進度條,使任務執行更加可視化,也能夠更直觀地了解任務的執行情況。
完整代碼如下所示:
import time from tqdm import tqdm from colorama import Fore a = ['a', 'b', 'c'] # 通過tqdm參數設置進度條樣式 for index, value in tqdm(enumerate(a), bar_format="{l_bar}%s{bar}%s{r_bar}" % (Fore.BLUE, Fore.RESET)): time.sleep(1)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/283071.html