對於開發或者運維來講,使用Python去完成一些跑批任務,或者作一些監控事件是很是正常的狀況。那麼如何有效的監控任務的進度,除了在任務中加上log外,還能不能有另外一種方式來了解任務進展到哪一步了呢?python
這就是今天咱們來了解的內容,進度條git
首先說一下在操做系統中,都有哪些控制符:github
\r: 將光標移動到當前行的首位而不換行;多線程
\n:將光標移動到下一行,並不移動到首位;運維
\r\n:將光標移動到下一行首位。工具
那讓咱們來看下如何經過python來將標準輸出中添加進度條吧學習
在學習過程當中有什麼不懂得能夠加個人 python學習交流扣扣qun,784758214 羣裏有不錯的學習視頻教程、開發工具與電子書籍。 與你分享python企業當下人才需求及怎麼從零基礎學習好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 開發工具
tqdm是一個快速、擴展性強的進度條工具庫,它提供了很是多的接口,有興趣的小夥伴能夠了解一下。githup地址是: https://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哦~來一個多進程的感覺下吧~