【Python】給程式加個進度條

來源:互聯網
上載者:User

標籤:事件   span   str   time   除了   std   分享圖片   內容   工具   

對於開發或者營運來說,使用 Python 去完成一些跑批任務,或者做一些監控事件是非常正常的情況。那麼如何有效地監控任務的進度?除了在任務中加上 Log 外,還能不能有另一種方式來瞭解任務進展到哪一步了呢?

這就是今天我們來瞭解的內容——進度條。

標準輸出

首先說一下在作業系統中,都有哪些控制符:

  • \r: 將游標移動到當前行的首位而不換行;

  • \n:將游標移動到下一行,並不移動到首位;

  • \r\n:將游標移動到下一行首位。

那讓我們來看下如何通過 Python 來將標準輸出中添加進度條吧。

import sysimport timedef 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)

來看下實際效果:

 

Tqdm 模組

Tqdm 是一個快速、擴充性強的進度條工具庫,它提供了非常多的介面,有興趣的小夥伴可以瞭解一下。

GitHub 地址是:https://github.com/tqdm/tqdm。

我們來看下,如何使用 Tqdm 模組來實現進度條。

1. 首先是安裝,非常簡單。

pip install tqdm

2. 接下來就是具體的操作。

from time import sleepfrom tqdm import tqdm# 這裡同樣的,tqdm就是這個進度條最常用的一個方法# 裡面存一個可迭代對象for i in tqdm(range(1, 500)):   # 類比你的任務   sleep(0.01)

是不是看到這裡發現,Tqdm 非常的簡單呢?這隻是一個例子,它也可以非常的複雜,同時也支援多線程、多進程,還有 Pandas。

來一個多進程的感受下吧。

 

【Python】給程式加個進度條

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.