您好,登錄后才能下訂單哦!
本篇內容介紹了“Python的迭代進度條Tqdm怎么用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
Tqdm 是一個智能進度表。它能夠顯示所有可迭代對象當前執行的進度。
你只需要用 tqdm 對可迭代對象進行封裝后再遍歷即可實現進度條功能,比如說:
from tqdm import tqdm for i in tqdm(range(10000)): ...
顯示效果如下:
76%|████████████████████████ | 7568/10000 [00:33<00:10, 229.00it/s]
1.準備
請選擇以下任一種方式輸入命令安裝依賴:
1. Windows 環境 打開 Cmd (開始-運行-CMD)。
2. MacOS 環境 打開 Terminal (command+空格輸入Terminal)。
3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install
2.基本使用
tqdm 非常靈活,可以使用多種方式調用。下面給出了兩種主要的形式。
使用 tqdm() 封裝可迭代的對象:
from tqdm import tqdm from time import sleep text = "" for char in tqdm(["a", "b", "c", "d"]): sleep(0.25) text = text +
trange(i) 是特殊的關鍵字,是封裝了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]
除了迭代的形式,你可以手動控制進度,加一個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的時候進度也就結束了。
你也可以選擇不使用上下文的形式調用,但要記得結束后對對象進行關閉操作:
pbar = tqdm(total=100) for i in range(10): sleep(0.1) pbar.update(10) pbar.close()
3.模塊結合
Tqdm 最妙的地方在于能在命令行中結合使用:
$ 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]
“Python的迭代進度條Tqdm怎么用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。