【Python 軍火庫🧨 - tqdm】讓我們為工作加點進度條吧

【Python 軍火庫🧨 - tqdm】讓我們為工作加點進度條吧

更新於 發佈於 閱讀時間約 2 分鐘
圖片來源

圖片來源

我們在安裝程式的時候, 通常安裝包都會有進度條的顯示, 雖然那是GUI的部份, 但命令列是否也可以這樣呢? 答案是可以的, 在Python就有這麼一套工具專門在顯示我們程式運行的進度, 只要掌握如何回報進度、更新進度, 接下來渲染與互動的部份就交由tqdm這套件去處理即可。


這會對於我們在掌握執行進度以及預期工作結束的時間會有很大的幫助, 而且使用上也非常的容易, 如果沒有進度條的狀況之下我們根本不知道程式究竟是死是活, 所以為了避免使用者的誤會, 我們只好在開發這種耗時工作量大的工具時加入進度條。

安裝

pip install tqdm

基本用法

from tqdm import tqdm
import time

for i in tqdm(range(1, 11)):
# 這邊可以換上實際工作的執行, 例如: 程式運算、爬蟲...
# 模擬工作需花費0.5
time.sleep(0.5)

我們也可以自訂批次更新的單位數

上述的案例是從1 ~ 11依序更新, 每次更新1個單位, 那假設我們有十萬個螺絲需要包裝, 但一次可以完成10個, 那我們能不能自訂更新為10個而不是1個? 我們可以這樣做…

# 總共10萬個螺絲
total = 100000

# 每次包10個螺絲, 共會有幾份工作
jobs_num = 10000/10
with tqdm(total=total) as pbar:
for i in range(jobs_num):
# 假設每個工作需要0.1
sleep(0.1)

# 每個工作完畢後更新進度
pbar.update(10)

甚至我們可以直接當成工具來使用

不必透過Python進行二次開發, 透過上述安裝步驟完成後, 只要像這樣就能夠讓我們的壓縮進度進行互動式顯示。

tar -zcf - docs/ | tqdm --bytes --total `du -sb docs/ | cut -f1` \\
> backup.tgz
32%|██████████▍ | 8.89G/27.9G [00:42<01:31, 223MB/s]

結語

剛入門總看到很酷的工具都是python開發而成, 而且互動式進度條也非常的清晰, 基於這樣的好奇心驅使之下, 搜尋出了tqdm這套工具, 讓我們在開發命令列工具時也能夠具有進度的展示, 就讓我們好好的來玩一下吧。


您是否苦於網路資訊爆炸嗎? 教學何其多,但卻無法好好選擇的困境呢? 歡迎加入「🔒 阿Han的軟體心法實戰營」, 這裡不給您冗餘的雜訊, 單刀直入直接送您重點, 避開選擇障礙的困境, 讓您獲得業界標準的開發起手式, 成為Top 1的頂尖人才。

avatar-img
阿Han的沙龍
127會員
281內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
留言
avatar-img
留言分享你的想法!
阿Han的沙龍 的其他內容
🤔 簡單且靜態就足夠了? 相信我們在開發Python應用程式的過程中, 常常會借用Enum來定義我們可能的選項, 就像顏色紅、綠、黃會有這樣的結構: class Color(str, Enum): RED = 'red' GREED = 'green' YELLOW = 'yel
當我們的系統發展到一定程度時, 難免會面臨到正式上線的問題, 要如何讓維運更加簡易呢? 尤其隨著複雜的客製化配置的出現時, 我們應該如何有效的管理, 甚至驗證配置是否如預期資料型態、格式…, 而正好 pydantic 可以滿足這樣的需求, 就讓我們來看看怎麼使用吧! 需安裝的套件 pip i
要如何使用unicorn啟動多個FastAPI服務, 歡迎參考我們的「【💊 Python的解憂錦囊 - FastAPI】如何啟動多個Workers」。 當我們試著設計帶入模組化時… 我們在「【💊 Python的解憂錦囊 - FastAPI】使用 lifespan 來共享資料與管理生命週期
🤔 簡單且靜態就足夠了? 相信我們在開發Python應用程式的過程中, 常常會借用Enum來定義我們可能的選項, 就像顏色紅、綠、黃會有這樣的結構: class Color(str, Enum): RED = 'red' GREED = 'green' YELLOW = 'yel
當我們的系統發展到一定程度時, 難免會面臨到正式上線的問題, 要如何讓維運更加簡易呢? 尤其隨著複雜的客製化配置的出現時, 我們應該如何有效的管理, 甚至驗證配置是否如預期資料型態、格式…, 而正好 pydantic 可以滿足這樣的需求, 就讓我們來看看怎麼使用吧! 需安裝的套件 pip i
要如何使用unicorn啟動多個FastAPI服務, 歡迎參考我們的「【💊 Python的解憂錦囊 - FastAPI】如何啟動多個Workers」。 當我們試著設計帶入模組化時… 我們在「【💊 Python的解憂錦囊 - FastAPI】使用 lifespan 來共享資料與管理生命週期