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实现双锁并发队列   java如何更改SpringWS 2.4.4版或更高版本中maxOccurs的默认限制?   java Selenium RC如何处理动态行?   java何时引入Javac StringBuilder/StringBuffer优化?   java mediaplayer在R.raw Android上失败   java JPA2:不区分大小写,就像在任何地方匹配一样   如何从JDK15中提取java预览类文件?   java与mySQL删除查询不一致   从Shutdownow()返回的java列表<Runnable>无法转换为提交的Runnable   java如何从回调接口获取对象值?   java如何获得视图的高度,在xml中可见性和高度定义为wrap_内容?   postgresql Mybatis在启动时遇到“由以下原因引起:java.net.UnknownHostException:localhost”,为什么?   带有实例调用的方法调用的java intellij格式化程序换行   由于特定的第三方库,java Proguard产生运行时错误   动画JAVA JPanel同时滑出和滑入