eprogress 是一個(gè)簡(jiǎn)單、易用的基于Python3的命令行(terminal)進(jìn)度條庫(kù),可以自由選擇使用單行顯示、多行顯示進(jìn)度條或轉(zhuǎn)圈加載方式,也可以混合使用。
作者:竹塵居士
?
pip install eprogress
easy_install eprogress
導(dǎo)入eprogress
from eprogress import LineProgress, CircleProgress, MultiProgressManager
實(shí)例化進(jìn)度條對(duì)象,更新進(jìn)度
# circle loading circle_progress = CircleProgress(title='circle loading') for i in range(1, 101): circle_progress.update(i) time.sleep(0.1)# line progress line_progress = LineProgress(title='line progress') for i in range(1, 101): line_progress.update(i) time.sleep(0.05)# multi line or circle loading progressprogress_manager = MultiProgressManager()progress_manager.put(str(1001), LineProgress(total=100, title='1 thread'))progress_manager.put(str(1002), LineProgress(total=100, title='2 thread'))progress_manager.put(str(1003), LineProgress(total=100, title='3 thread'))progress_manager.put(str(1004), CircleProgress(title='4 thread'))... ...progress_manager.update(key, progress)
圓形加載條使用update(progress)實(shí)例方法進(jìn)行刷新,只有當(dāng)參數(shù)大于0時(shí)才會(huì)轉(zhuǎn)動(dòng)。
線性進(jìn)度條使包含4個(gè)可選參數(shù):
@param total : 進(jìn)度總數(shù)@param symbol : 進(jìn)度條符號(hào)@param width : 進(jìn)度條展示的長(zhǎng)度@param title : 進(jìn)度條前面展示的文字
創(chuàng)建實(shí)例后調(diào)用update(progress)實(shí)例方法更新進(jìn)度。
多行進(jìn)度顯示使用MultiProgressManager類,實(shí)例化該類,調(diào)用put(key,progressBar)方法統(tǒng)一管理多個(gè)進(jìn)度條,內(nèi)部使用一個(gè)dict來收集進(jìn)度條,多行顯示的順序?yàn)閜ut的順序。更新某個(gè)進(jìn)度條時(shí)使用progressMangager的update(key,progress)方法,該key為put進(jìn)度條時(shí)使用的key。
無(wú)論是使用多行進(jìn)度條混合還是使用單行進(jìn)度條,都不用考慮多線程更新的問題,內(nèi)部已用Lock()加鎖。
聯(lián)系客服