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

2023/09/09閱讀時間約 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的頂尖人才。

91會員
260內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
留言0
查看全部
發表第一個留言支持創作者!