python 命令行进度条,python进度条代码怎么写
Python的进度条有很多第三方库,有些很酷。下面这篇文章主要介绍Python中如何正确使用进度条的相关信息。通过示例代码非常详细的介绍,有需要的朋友可以参考一下。
00-1010 1简介2 tqdm常用方法2.1基本用法2.2 jupyter笔记本/jupyter lab的美颜进度条2.3应用3 Alive-熊猫常用方法的进展总结
目录
在日常的程序运行过程中,经常会涉及到循环迭代过程。对于执行时间短的程序来说无所谓,但是对于运行过程明显耗时的程序来说,添加进度条是一个非常实用的技巧,可以帮助我们监控代码执行的进度,处理中间异常错误。
本文将介绍两个进度条相关库——tqdm和alive-progress的主要用法,这两个库在Python中非常实用,风格也各不相同。
1 简介
Tqdm是Python中所有进度条相关库中最著名的。既然是最有名的,自然有自己的独特之处。
Tqdm不仅可以生成终端中可以显示的基本进度条,还可以与jupyter notebook和jupyter lab合作,以网页交互部分的形式生成更加精美的进度条。为熊猫中的一些操作提供专属进度条功能,也是与熊猫的一次强大合作。
下面介绍一下tqdm的主要功能。
2 tqdm常用方法
因为是第三方库,所以首先需要通过pip install tqdm或者conda install -c conda-forge tqdm进行安装。安装完成后,我们来看看它最基本的用法:
使用tqdm.tqdm,只需对for循环过程中的迭代对象进行包装,就可以实现为循环过程添加进度条,打印执行速度、运行时间、预计剩余运行时间等实用信息的功能。它还可以用于列表派生:
鉴于迭代对象是range(),tqdm还提供了trange()的简化版,而不是tqdm(range()):
附带的参数desc也可以帮助我们设置进度条的标题:
如果想在迭代过程中改变说明文字,也可以提前实例化进度条对象,在需要刷新说明文字时执行相应的程序:
但是当迭代对象的长度一开始是未知的时候,比如在pandas中迭代DataFrame.itertuples(),我们只能估计它的执行速度等信息,而看不到进度条的增量,因为tqdm不知道迭代的结束:
2.1 基础用法
TQM特别支持jupyter笔记本和jupyter实验室,使用方法非常简单。只需要将对应函数的原导入格式从tqdm导入XXX修改为from tqdm.notebook导入XXX,以trange为例:
2.2 配合jupyter notebook/jupyter lab的美观进度条
TQM为pandas中的apply()过程提供了特殊的支持,因为pandas中的apply()本质上是一个串行循环操作。您可以用progress_apply替换pandas中的任何应用操作,并记住在每个单独的progress_apply之前执行tqdm.pandas(),就像下面的示例:
2.3 配合pandas中的apply
虽然像TQM一样,它是一个为循环过程添加进度条而诞生的库,但alive-progress比TQM添加了更多不同的动态效果。我们可以通过调用showtime()函数来查看所有可用的动态进度条样式:
同样,您可以查看所有进度条样式:
用起来也很简单,但是和tqdm用法差别很大,需要搭配with关键字。例如,我们在alive_progress中使用alive_bar来生成一个动态进度条:
通过修改进度条参数来更改进度条的样式:
关于alive-progress的更多信息,感兴趣的朋友可以查看官方描述:(https://github.com/rsalmei/alive-progress),但遗憾的是,目前的alive-progress只能在终端运行,还没有为jupyter开发出更漂亮的交互组件。不过可以在网络爬虫等任务中使用,效果也很不错。
3 alive-progress常用方法
关于如何在Python中正确使用进度条的这篇文章到此结束。关于Python使用进度条的更多信息,请搜索流行的IT软件开发工作室以前的文章,或者继续浏览下面的相关文章。希望大家以后多多支持盛行的IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。