Tqdm 是一個智能進度表。它能夠顯示所有可迭代對象當前執(zhí)行的進度。
你只需要用 tqdm 對可迭代對象進行封裝后再遍歷即可實現(xiàn)進度條功能,比如說:
from tqdm import tqdm
for i in tqdm(range(10000)):
...
顯示效果如下:
76%|████████████████████████ | 7568/10000 [00:33<00:10, 229.00it/s]
1.準備
開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細Python安裝指南 進行安裝。
如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.
此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點:Python 編程的最好搭檔—VSCode 詳細指南。
請選擇以下任一種方式輸入命令安裝依賴 :
- Windows 環(huán)境 打開 Cmd (開始-運行-CMD)。
- MacOS 環(huán)境 打開 Terminal (command+空格輸入Terminal)。
- 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install tqdm
2.基本使用
tqdm 非常靈活,可以使用多種方式調(diào)用。下面給出了兩種主要的形式。
2.1 迭代的形式
使用 **tqdm() **封裝可迭代的對象:
from tqdm import tqdm
from time import sleep
text = ""
for char in tqdm(["a", "b", "c", "d"]):
sleep(0.25)
text = text + char
trange(i) 是特殊的關(guān)鍵字,是封裝了range的tqdm對象:
from tqdm import trange
for i in trange(100):
sleep(0.01)
通過 set_description方法,你能控制進度條顯示當前步驟的名稱:
Processing d: 100%|█████████████████████████████████████████████| 4/4 [00:01<00:00, 3.99it/s]
2.2 手動的形式
除了迭代的形式,你可以手動控制進度,加一個tqdm上下文即可:
with tqdm(total=100) as pbar:
for i in range(10):
sleep(0.1)
pbar.update(10)
上述例子中,pbar 是 tpdm 的“進度”,每一次對 pbar 進行 update 10 都相當于進度加10。
Total 的值即是總進度,這里 total 的值是100,那么pbar加到100的時候進度也就結(jié)束了。
你也可以選擇不使用上下文的形式調(diào)用,但要記得結(jié)束后對對象進行關(guān)閉操作:
pbar = tqdm(total=100)
for i in range(10):
sleep(0.1)
pbar.update(10)
pbar.close()
3.模塊結(jié)合
Tqdm 最妙的地方在于能在命令行中結(jié)合使用:
$ find . -name '*.py' -type f -exec cat {} ; |
tqdm --unit loc --unit_scale --total 857366 > > /dev/null
100%|█████████████████████████████████| 857K/857K [00:04< 00:00, 246Kloc/s]
只需在管道之間插入tqdm(或python -m tqdm),即可將進度條顯示到終端上。
備份大目錄:
$ tar -xcf - docs/ | tqdm --bytes --total `du -sb docs/ | cut -f1`
> backup.tgz
44%|██████████████▊ | 153M/352M [00:14< 00:18, 11.0MB/s]
這可以進一步美化:
$ BYTES="$(du -sb docs/ | cut -f1)"
$ tar -cf - docs/
| tqdm --bytes --total "$BYTES" --desc Processing | gzip
| tqdm --bytes --total "$BYTES" --desc Compressed --position 1
> ~/backup.tgz
Processing: 100%|██████████████████████| 352M/352M [00:14< 00:00, 30.2MB/s]
Compressed: 42%|█████████▎ | 148M/352M [00:14< 00:19, 10.9MB/s]
-
數(shù)據(jù)分析
+關(guān)注
關(guān)注
2文章
1410瀏覽量
33987 -
python
+關(guān)注
關(guān)注
55文章
4767瀏覽量
84375
發(fā)布評論請先 登錄
相關(guān)推薦
評論