萬能的Python,還能用來製作高大上的進度條?

《萬能的Python,還能用來製作高大上的進度條?》

對於開發或者運維來說,使用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
《萬能的Python,還能用來製作高大上的進度條?》

2. tqdm模塊

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哦~來一個多進程的感受下吧~
《萬能的Python,還能用來製作高大上的進度條?》

關注公眾號:「Python專欄」,後台回復:進度條,獲取整套源代碼!!!

《萬能的Python,還能用來製作高大上的進度條?》

点赞

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *