Python中如何寫控制檯進度條的整理

本文實例講述了Python顯示進度條的方法,是Python程序設計中很是實用的技巧。分享給你們供你們參考。具體方法以下:python

首先,進度條和通常的print區別在哪裏呢?git

答案就是print會輸出一個\n,也就是換行符,這樣光標移動到了下一行行首,接着輸出,以前已經經過stdout輸出的東西依舊保留,並且保證咱們在下面看到最新的輸出結果。github

進度條否則,咱們必須再原地輸出才能保證他是一個進度條,不然換行了怎麼還叫進度條?app

最簡單的辦法就是,再輸出完畢後,把光標移動到行首,繼續在那裏輸出更長的進度條便可實現,新的更長的進度條把舊的短覆蓋,就造成了動畫效果。動畫

能夠想到那個轉義符了吧,那就是\ r。ui

轉義符r就能夠把光標移動到行首而不換行,轉義符n就把光標移動到行首而且換行。this

在python中,輸出stdout(標準輸出)可使用sys.stdout.write
例如:google

第二種思路是用轉義符\b
轉義符\b是退格鍵,也就是說把輸出的光標往回退格子,這樣就能夠不用+=了,例如:spa

光標回退2格,寫個#再回退,再寫,達到增加的目的了設計

不過寫這麼多彷佛是廢話,在耳邊經常聽到一句話:那就是不要重複造輪子。實際上python有豐富發lib幫你實現這個東西,你徹底能夠把心思放在邏輯開發上而不用注意這些小細節的百度雲網盤搜索

下面要介紹的就是這個類「progressbar」(http://code.google.com/p/python-progressbar/),使用easy_install能夠方便的安裝這個類庫,其實就一個文件,拿過來放到文件同一個目錄下面也直接能夠import過來

以下圖所示:

下面就是基本使用舉例:

官方示例:http://code.google.com/p/python-progressbar/source/browse/progressbar/examples.py

再發一個類:

另外,python cookbook中11.1節也提供了一個不錯的進度條類,代碼以下:

運行結果以下圖所示:

相關文章
相關標籤/搜索