python progressbar库,为长时间运行的操作提供可视(但基于文本)进度。

progressbar2的Python项目详细描述


特拉维斯状态:

https://travis-ci.org/WoLpH/python-progressbar.svg?branch=master

覆盖范围:

https://coveralls.io/repos/WoLpH/python-progressbar/badge.svg?branch=master

安装

软件包可以通过pip安装(这是推荐的方法):

pip install progressbar2

或者,如果没有pip,那么也可以使用easy_install:

easy_install progressbar2

或者从pypi(https://pypi.python.org/pypi/progressbar2)或github下载最新版本。

请注意,pypi上的版本是用我的gpg密钥(https://pgp.mit.edu/pks/lookup?op=vindex&search=0xE81444E9CE1F695D)签名的,可以使用gpg进行检查:

gpg –verify progressbar2-<version>.tar.gz.asc progressbar2-<version>.tar.gz

简介

文本进度条通常用于显示 运行操作,提供处理正在进行的视觉提示。

progressbar类管理当前进度和行的格式 由许多小部件提供。小部件是一个可以显示的对象 取决于进度条的状态。有很多类型 小工具数量:

progressbar模块非常容易使用,但功能非常强大。它也会 系统支持时自动启用自动调整大小等功能。

已知问题

由于空闲shell和jetbrains(pycharm)shell中的限制,progressbar不能在这些shell中正常工作。

用法

使用python progressbar有很多方法,您可以看到一些基本的示例 但是在示例文件中还有更多。

包装iterable

importtimeimportprogressbarforiinprogressbar.progressbar(range(100)):time.sleep(0.02)

记录

的进度条

带有日志记录的progressbar需要在 streamhandler已初始化。确保strderr流 准时重定向请确保在之前调用progressbar.streams.wrap_stderr() 初始化记录器

强制提前初始化的一个选项是使用wrap stderr 环境变量,在Linux/Unix系统上,可以通过:

# WRAP_STDERR=true python your_script.py

如果包装时需要手动冲洗,可以使用:

importprogressbarprogressbar.streams.flush()

在大多数情况下,只要初始化 streamhandler在包装之后。

importtimeimportloggingimportprogressbarprogressbar.streams.wrap_stderr()logging.basicConfig()foriinprogressbar.progressbar(range(10)):logging.error('Got %d',i)time.sleep(0.2)

上下文包装器

importtimeimportprogressbarwithprogressbar.ProgressBar(max_value=10)asbar:foriinrange(10):time.sleep(0.1)bar.update(i)

将ProgressBars与打印输出相结合

importtimeimportprogressbarforiinprogressbar.progressbar(range(100),redirect_stdout=True):print('Some text',i)time.sleep(0.1)

未知长度的progressbar

importtimeimportprogressbarbar=progressbar.ProgressBar(max_value=progressbar.UnknownLength)foriinrange(20):time.sleep(0.1)bar.update(i)

带有自定义小部件的栏

importtimeimportprogressbarwidgets=[' [',progressbar.Timer(),'] ',progressbar.Bar(),' (',progressbar.ETA(),') ',]foriinprogressbar.progressbar(range(20),widgets=widgets):time.sleep(0.1)

带有宽中文(或其他多字节)字符的条形图

# vim: fileencoding=utf-8importtimeimportprogressbardefcustom_len(value):# These characters take up more spacecharacters={'进':2,'度':2,}total=0forcinvalue:total+=characters.get(c,1)returntotalbar=progressbar.ProgressBar(widgets=['进度: ',progressbar.Bar(),' ',progressbar.Counter(format='%(value)02d/%(max_value)d'),],len_func=custom_len,)foriinbar(range(10)):time.sleep(0.1)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java实现建议需要时事通讯   这个“未知所有者”死锁是JVM错误吗?所有java程序都会受到它的影响吗?   java在Android中获得了多少主屏幕?   java如何检查方法的TypeMirror returnType是否为枚举   java寻找两点之间的最短路径,动态规划   java如何获取最大的BigDecimal值   java许多返回的记录导致Hibernate堆栈溢出   DynamoDB(Java)中基于数字限制和偏移量的分页   java如何设计算法来计算所有可能的元素排列?   使用SpringMVC的java流式处理大型文件   jsp如何实现java web应用程序属性缓存?   java使用应用程序属性动态创建bean   尝试在Azure上创建目录时发生java AccessControlException   Java:创建特定类   java中的双击   java如何使constrator方法非结构化?   openfire如何修复Java VM缺少的类   java JOGL 1。x个未签名的小程序是否可能?   安卓在java中解析2d Json