如何使用Python的进度条?
在使用Python处理比较耗时操作的时候,为了便于观察处理进度,就需要通过进度条将处理情况进行可视化展示,以便我们能够及时了解情况。这对于第三方库非常丰富的Python来说,并不是什么难事。
tqdm
就能非常完美的支持和解决这个问题,它是一个快速、扩展性强的进度条工具库。用户只需要封装任意的迭代器 tqdm(iterator)
,就能在 Python 长循环中添加一个进度提示信息。
官网:
https://github.com/tqdm/tqdm
安装:
pip install tqdm
基于迭代器的使用方式
【例子】使用tqdm(iterator)
import time
from tqdm import tqdmfor i in tqdm(range(100)):time.sleep(0.05)for i in tqdm(list('abcdefgh')):time.sleep(0.05)for i in tqdm(range(100), desc='Processing'):time.sleep(0.05)
【例子】trange(N)
是tqdm(range(N))
的一种简单写法
import time
from tqdm import tqdm, trangefor i in trange(100):time.sleep(0.05)
【例子】循环外的实例化允许手动控制tqdm()
import time
from tqdm import tqdmpbar = tqdm(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'])
for i in pbar:pbar.set_description('Processing ' + i)time.sleep(0.2)
【例子】
import time
from tqdm import tqdm
from random import random, randintwith tqdm(range(100)) as pbar:for i in pbar:pbar.set_description("GEN %d" % i)pbar.set_postfix({'loss': random(), 'gen': randint(1, 999)})time.sleep(0.1)
基于手动进行更新
【例子】使用with
语句手动控制tqdm()
更新
import time
from tqdm import tqdmwith tqdm(total=200) as pbar:pbar.set_description("Processing")for i in range(20):time.sleep(0.1)pbar.update(10)
如果提供了可选变量total
(或带有len()
的iterable),则会显示预测统计信息。
with
也是可选的(可以将tqdm()
赋值给变量,但在这种情况下,不要忘记在结尾处del
或close()
。
import time
from tqdm import tqdmpbar = tqdm(total=200)
pbar.set_description("Processing")
for i in range(20):time.sleep(0.1)pbar.update(10)pbar.close()
tqdm模块参数说明
class tqdm(Comparable):"""Decorate an iterable object, returning an iterator which acts exactlylike the original iterable, but prints a dynamically updatingprogressbar every time a value is requested."""def set_description(self, desc=None, refresh=True):def set_postfix(self, ordered_dict=None, refresh=True, **kwargs):def update(self, n=1):def close(self):
set_description()
函数:用于设置/修改进度条的说明。set_postfix()
函数:用于设置/修改后缀(附加统计信息)。update()
函数:手动更新进度条。close()
函数:清除并关闭progressbar。
class tqdm(Comparable):"""Decorate an iterable object, returning an iterator which acts exactlylike the original iterable, but prints a dynamically updatingprogressbar every time a value is requested."""def __init__(self, iterable=None, desc=None, total=None, leave=False,file=sys.stderr, ncols=None, mininterval=0.1,maxinterval=10.0, miniters=None, ascii=None,disable=False, unit='it', unit_scale=False,dynamic_ncols=False, smoothing=0.3, nested=False,bar_format=None, initial=0, gui=False):
- iterable:可迭代的对象,在手动更新时不需要进行设置。
- desc:字符串,左边进度条描述文字。
- total:总的项目数。
- leave:bool值,迭代完成后是否保留进度条。
- file:输出指向位置,默认是终端, 一般不需要设置。
- ncols:调整进度条宽度,默认是根据环境自动调节长度,如果设置为0,就没有进度条,只有输出的信息。
- unit:描述处理项目的文字,默认是’it’,例如: 100 it/s,处理照片的话设置为’img’ ,则为 100 img/s。
- unit_scale:自动根据国际标准进行项目处理速度单位的换算,例如 100000 it/s >> 100k it/s。
【例子】
import time
from tqdm import tqdmwith tqdm(total=100000, desc='Example', leave=True, ncols=100, unit='B', unit_scale=True) as pbar:for i in range(10):time.sleep(0.5)pbar.update(10000)
tqdm
源自阿拉伯语单词taqaddum,意思是“progress(进展)”,是python中一个快速、扩展性强的进度条工具库,能让我们了解代码的运行进度,也能让我们的运行结果看起来显得更加美观而又高大上!! 喜欢的小伙伴赶紧用起来吧!!
相关文章:

Python各种包下载地址
地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml转载于:https://www.cnblogs.com/data-magnifier/p/7887072.html

Python中的标识符有哪些基础原则?
很多同学学习Python技术的过程中,会接触一些标识符的知识,这部分也是Python的基础知识,那么Python中的标识符有哪些基础原则?接下来我们一起来看看详细的内容介绍吧,希望对你们有Python培训所帮助,请看下文࿱…

[原]three.js 地形纹理混合
地形生成通常使用高度图, 而高度图的生成可以使用绘图工具,或者通过分形算法生成,例如square-diamond, fbm方法。这里采用简单求平均值随机波动的方法。对于一个2^n1 * 2^n1 的网格, 中心点的高度是四角点的平均值加随机偏移&a…

入职五年回顾(八) 2013年3月
今天是正月二十,香港高层们会过来派利是。人人能拿到的是一封二十元的利是,而高达三百元的利是则只有十二封,所以要抽奖。我们在新闻上看到腾讯逗利是的场景,但这也是发生在别人的公司。入职第一年逗利是,我脸皮不够厚…

UI设计的发展前景怎么样?
越来越多的人开始关注UI设计这个行业,有的人认为UI设计在业内发展很好,有的人却觉得工作比较难找,那么到底UI设计的发展前景怎么样呢?来看看下面的详细介绍就知道了。 UI设计的发展前景怎么样?可以从以下几个点出发: 一、偏运营…

[Struts2应用开发] JSON的应用
在日常的WEB应用开发过程中,前端常会涉及AJAX,而前台与后台的交互常用的数据格式就是JSON。 Struts2中使用JSON的方法方法如下: Action: 如果action中的某些属性不需要在json里面出现,可以通过annotation :JSON(serial…
2星|《快公司》2018年2-3期:商业人物访谈集
快公司2018年2期/2018年3期:乐观派领导力 本期杂志基本是一些商业人物的访谈集。大部分商业人物都是国内读者不熟悉的美国小公司的领导。 总体评价2星,参考价值不大。 以下是书中一些内容的摘抄,#号后面是kindle电子版中的页码: 1…

【青少年编程】【Scratch】06 侦测模块
06 侦测模块 侦测模块是用来检测场景中某一参数的变化,通过参数变化来为下一步操作提供运行依据。通常与控制模块中的条件语句和循环语句一起使用。 具体分为: 与运动相关的侦测;与按键相关的侦测;侦测舞台、角色等的基本参数&…

Java培训教程:”==“和 equals 方法究竟有什么区别?
在学习java技术过程中,我们会接触到一些变量值的相关知识,本期小编为大家介绍的教程就是关于”“和 equals 方法究竟有什么区别?来看看下面的详细介绍。 Java培训教程:”“和 equals 方法究竟有什么区别? 操作符专门用来比较两个变量的值是…

转载-SQL Server各种导入导出数据方式的比较
注:本文转载自 http://blog.csdn.net/nokiaguy/article/details/4684822 当我们建立一个数据库时,并且想将分散在各处的不同类型的数据库分类汇总在这个新建的数据库中时,尤其是在进行数据检验、净化和转换时,将会面临很大的挑战。…

【直播】李祖贤:集成学习答疑直播之八-- 集成知识点回顾与补充
集成学习答疑直播之八-- 集成知识点回顾与补充 集成学习是首个横跨3个周期的长期组队学习,在第25期组队学习中进行到“第三期-模型融合与数据实战”阶段。组队学习期间,课程设计者每周针对学习任务的重难点和学员的学习情况进行集中直播答疑,…

Python培训完可以找什么工作
近几年学习Python技术的人越来越多,对于Python这个行业很多人都是比较看好的,事实也确实如此,那么具体Python培训完可以找什么工作呢?现在学习Python好就业吗?来看看下面的详细介绍吧。 Python培训完可以找什么工作?Python是一种面向对象的…

上传图片时出现Request 对象 错误 'ASP 0104 80004005'
原因.IIs默认的上传大小为200K,当上传的文件超过此大小.则会出现此错误 解决办法: 1.关闭IIS Admin Service服务 2.更改C:\WINDOWS\system32\inetsrv目录下的MetaBase.xml 文件,将第601行的AspMaxRequestEntityAllowed204800.更改为AspMaxRequestEntityAllowed5120000(5120000是…

Datawhale组队学习周报(第013周)
本周(05月10日~05月16日),第 25 期组队学习正在如火如荼的进行中。本期组队学习,一共有 3 门开源课程,共组建了 3 个学习群,参与的学习者有 292 人。另外,第 26 期组队学习也蓄势待发准备与大家…

subst将文件夹目录虚拟成虚拟磁盘
SUBST [drive1: [drive2:]path]SUBST drive1: /Ddrive1: 指定要指派路径的虚拟驱动器。[drive2:]path 指定物理驱动器和要指派给虚拟驱动器的路径。/D 删除被替换的 (虚拟) 驱动器。不加任何参数键入 SUBST,可以显示当前虚拟驱动器的清单。本文…

UI设计学习的对比原则怎么运用?
本期小编为大家介绍的UI设计培训教程就是关于UI设计学习的对比原则怎么运用?因为在UI设计中分组原则这一项在文字排版中运用的几率是比较频繁的,并且分组对于层次感和整合信息都有一定的帮助,但是光有分组还远远不够,尤其是零基础学ui我们还…

silverlight数据库应用程序开发
该解决方案使用的是"silverlight导航应用程序Oracle数据库WebService服务” 新建silverlight项目GH,同时会自动添加一个GH.Web,在GH.Web中添加"web 服务",同时需要添加两个XML文件用于解决跨域问题: 第一个XML文件:…

如何设置matplotlib中x,y坐标轴的位置?
在机器学习中经常会使用Sigmoid函数,如果直接使用matplotlib绘图,那么就会像下图这样,原点并没有在(0,0)。 import matplotlib.pyplot as plt import numpyx numpy.linspace(start-10, stop10) y 1 / (1 numpy.e ** (-1 * x))plt.plot(x,…

Python中的类、模块和包究竟是什么?
Python培训教程:Python中的类、模块和包究竟是什么?在Python和其他编程语言中,都有类似或相同的概念,如对象、类、模块、包,名称都是一样的,只不过会有细微的一些区别,正是因为有这些存在,才使…

Test class should have exactly one public constructor解决办法
测试类用的junit,在eclipse中执行ok,在maven编译就挂 Error MessageTest class should have exactly one public constructor Stacktracejava.lang.Exception: Test class should have exactly one public constructorat org.junit.runners.BlockJUnit4C…

中矿大新生赛 A 求解位数和【字符串】
时间限制:C/C 1秒,其他语言2秒空间限制:C/C 32768K,其他语言65536K64bit IO Format: %lld题目描述 给出一个数x,求x的所有位数的和。输入描述: 第1行输入组数T,代表有T组数据。第2-T1行,每行输入…

学软件测试的优势有哪些
软件测试培训岗在各大招聘网站上越来越多,很多公司都对软件测试这个岗位有需求,那么具体学软件测试的优势有哪些呢?来看看下面的详细介绍就知道了。 软件测试培训:学软件测试的优势有哪些? 工作起点高,发展空间大 开始工作即进入…

C++项目中的extern C {}
2010-07-10 19:45 by 吴秦, 92864 阅读, 22 评论, 收藏, 编辑 引言 在用C的项目源码中,经常会不可避免的会看到下面的代码: ?123456789#ifdef __cplusplusextern "C" { #endif/*...*/#ifdef __cplusplus}#endif它到底有什么用呢,你…

C# 自定义事件和委托
http://www.cnblogs.com/huomm/archive/2007/12/04/982869.html 转载于:https://www.cnblogs.com/xxvv/archive/2012/09/22/3648589.html

参加UI培训有发展吗?
UI设计岗在最近的很多招聘网上都越来越多,逐渐引起了很多人的关注,大家都想知道转行参加UI培训有发展吗?本篇文章就和大家分享一下。 参加UI培训有发展吗? 先来看看UI设计的现状,UI设计行业这几年发展非常快,目前已经初具规模&a…

lampp开机启动
安装好之后,输入以下命令即可: ln -s /opt/lampp/lampp /etc/rc.d/rc3.d/S99lampp ln -s /opt/lampp/lampp /etc/rc.d/rc4.d/S99lampp ln -s /opt/lampp/lampp /etc/rc.d/rc5.d/S99lampp转载于:https://www.cnblogs.com/imkun/archive/2012/09/23/269929…

Properties类读写配置文件
Properties类读写简单配置文件相当的方便,以前竟然没注意到这个类。 FileInputStream fs new FileInputStream("config.ini"); Properties pros new Properties(); pros.load(fs); pros.setProperty("test", &…