對於開發或者運維來說,使用Python去完成一些跑批任務,或者做一些監控事件是非常正常的情況。那麼如何有效的監控任務的進度,除了在任務中加上log外,還能不能有另一種方式來了解任務進展到哪一步了呢?
這就是今天我們來了解的內容,進度條
1. 標準輸出
首先說一下在作業系統中,都有哪些控制符:
\r: 將游標移動到當前行的首位而不換行;
\n:將游標移動到下一行,並不移動到首位;
\r\n:將游標移動到下一行首位。
那讓我們來看下如何通過python來將標準輸出中新增進度條吧
import sys
import time
def progress_bar(total):
"""
進度條效果
"""
# 獲取標準輸出
_output = sys.stdout
# 通過引數決定你的進度條總量是多少
for count in range(0, total + 1):
# 這裡的second只是作為工作量的一種代替
# 這裡應該是有你的主程式,main()
_second = 0.1
# 模擬業務的消耗時間
time.sleep(_second)
# 輸出進度條
_output.write(f'\rcomplete percent:{count:.0f}')
# 將標準輸出一次性重新整理
_output.flush()
progress_bar(100)
複製程式碼
來看下實際效果,這裡我錄了一段gif
2. tqdm模組
tqdm是一個快速、擴充套件性強的進度條工具庫,它提供了非常多的介面,有興趣的小夥伴可以瞭解一下。githup地址是: github.com/tqdm/tqdm
我們來看下,如何使用tqdm模組來實現進度條
a. 首先是安裝,非常簡單
pip install tqdm
複製程式碼
b. 接下來就是操作啦
from time import sleep
from tqdm import tqdm
# 這裡同樣的,tqdm就是這個進度條最常用的一個方法
# 裡面存一個可迭代物件
for i in tqdm(range(1, 500)):
# 模擬你的任務
sleep(0.01)
複製程式碼
是不是看到這裡發現,tqdm非常的簡單呢?
這只是一個例子啦,他也可以非常的複雜,同時你也支援多執行緒、多程式,還有pandas哦~來一個多程式的感受下吧~
關注公眾號:「Python專欄」,後臺回覆:進度條,獲取整套原始碼!!!