我們在安裝程式的時候, 通常安裝包都會有進度條的顯示, 雖然那是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的頂尖人才。