eprogress 是一个简单、易用的基于Python3的命令行(terminal)进度条库,可以自由选择使用单行显示、多行显示进度条或转圈加载方式,也可以混合使用。
作者:竹尘居士
?
pip install eprogress
easy_install eprogress
导入eprogress
from eprogress import LineProgress, CircleProgress, MultiProgressManager
实例化进度条对象,更新进度
# 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)实例方法进行刷新,只有当参数大于0时才会转动。
线性进度条使包含4个可选参数:
@param total : 进度总数@param symbol : 进度条符号@param width : 进度条展示的长度@param title : 进度条前面展示的文字
创建实例后调用update(progress)实例方法更新进度。
多行进度显示使用MultiProgressManager类,实例化该类,调用put(key,progressBar)方法统一管理多个进度条,内部使用一个dict来收集进度条,多行显示的顺序为put的顺序。更新某个进度条时使用progressMangager的update(key,progress)方法,该key为put进度条时使用的key。
无论是使用多行进度条混合还是使用单行进度条,都不用考虑多线程更新的问题,内部已用Lock()加锁。
联系客服