python怎样制作进度条功能,你知道哪些方法?
Admin 2021-05-29 群英技术资讯 669 次浏览
我们在做开发的时候,常会使用进度条效果,这能方便我们在对一些耗时操作的进度观察。那么如何使用python实现进度条效果呢?我们知道Python第三方库很丰富,因此python实现进度条的方式多样,下面我们就一起来了解一下。
tqdm就能非常完美的支持和解决这些问题,可以实时输出处理进度而且占用的CPU资源非常少,支持循环处理、多进程、递归处理、还可以结合linux的命令来查看处理情况,等进度展示。
tqdm
在阿拉伯语中的意思是“进展”,是python
中一个快速、扩展性强的进度条工具库,能让我们了解代码的运行进度,也能让我们的运行结果看起来显得更加美观而又高大上!!
先来看一下进度条的效果。
示例代码:
from tqdm import tqdm for i in tqdm(range(int(9e7))): pass
运行结果:
可以看到,当我们的代码的运行需要较长时间时,进度条可以很好的帮助我们了解整个代码的运行进度。
对于可以迭代的对象
都可以使用下面这种方式,来实现可视化进度,非常方便。
示例代码:
import time from tqdm import tqdm for i in tqdm(range(100)): time.sleep(0.1) pass
运行结果:
通过tqdm
提供的set_description
方法可以实时查看每次处理的数据。
示例代码:
import time from tqdm import tqdm pbar = tqdm(["A", "B", "C", "D", "E", "F"]) for i in pbar: time.sleep(1) pbar.set_description("Processing %s" % i)
运行结果:
在pandas
中对大量数据进行相关操作或者遍历表格的行列时,我们可以使用tqdm
来了解代码运行情况。
示例代码:
import time import pandas as pd from tqdm import tqdm df = pd.DataFrame({ 'Month': [1, 2, 3, 4, 5, 2, 3, 4, 5, 1, 2, 3, 4], 'Name': ['张三', '张三', '张三', '张三', '张三', '李四', '李四', '李四', '李四', '王五', '王五', '王五', '王五'], 'Sex': ['男', '男', '女', '女', '女', '男', '男', '男', '男', '女', '女', '女', '女'] }) for i in tqdm(['Month', 'Name', 'Sex']): time.sleep(2) pass
运行结果:
在使用多进程或者嵌套循环处理任务的时候,我们通过tqdm可以实时查看每一个进程任务的处理情况
示例代码:
import time from tqdm import tqdm for i in tqdm(range(5), ascii=False, desc="1st process"): # ascii = True 时为## for j in tqdm(range(5), ascii=True, desc="2st process"): time.sleep(0.1)
运行结果:
通过update方法可以控制每次进度条更新的进度。
示例代码1:
import time from tqdm import tqdm # total参数设置进度条的总长度为100 with tqdm(total=100) as pbar: for i in range(100): time.sleep(0.1) # 每次更新进度条的长度为1 pbar.update(1)
运行结果:
示例代码2:
import time from tqdm import tqdm # total参数设置进度条的总长度为500 with tqdm(total=500) as pbar: for i in range(100): time.sleep(0.1) # 每次更新进度条的长度为3 pbar.update(3)
运行结果:
除了上述方法之外,我们还能通过另外一种方法来实现操作。
示例代码3:
import time from tqdm import tqdm # total参数设置进度条的总长度为100 pbar = tqdm(total=100) for i in range(100): time.sleep(0.1) # 每次更新进度条的长度为1 pbar.update(1) # 关闭占用的资源 pbar.close()
运行结果:
另外,我们还能通过set_description
和set_postfix
方法设置进度条显示信息。
示例代码:
import time from tqdm import trange from random import random, randint with trange(100) as t: for i in t: # 设置进度条左边显示的信息 # 注意:代码中的GEN是可以手动换成其它内容的 t.set_description("GEN %i" % i) # 设置进度条右边显示的信息 # 注意:此处代码中的gen lr lst是可以手动换成其它内容的 t.set_postfix(loss=random(), gen=randint(1, 999), lr="h", lst=[1, 2]) time.sleep(0.1)
运行结果:
令人震惊的是,当我们将进度条显示的信息设置
为中文
时,竟然不会出现乱码!!!!
示例代码:
import time from tqdm import trange from random import random, randint with trange(100) as t: for i in t: # 设置进度条左边显示的信息 # 注意:代码中的GEN是可以手动换成其它内容的 t.set_description("进度 %i" % i) # 设置进度条右边显示的信息 # 注意:此处代码中的gen lr lst是可以手动换成其它内容的 t.set_postfix(损失=random(), 随机=randint(1, 999), 名字="h", 列表=[1, 2]) time.sleep(0.1)
运行结果:
我们在使用tqdm的时候,可以将tqdm(range(n))替换为trange(n),让你的代码看起来更加简洁而又高大上!
示例代码:
from tqdm import trange import time for i in trange(100): time.sleep(0.1) pass
运行结果:
示例代码1:
import time from tqdm import tqdm for i in tqdm(range(100)): print("I'm tqdm!", end=' ') time.sleep(0.1)
运行结果:
示例代码2:
import time from tqdm import tqdm_notebook for i in tqdm_notebook(range(100), desc="demo"): time.sleep(0.1) print("I'm tqdm_notebook!", end=' ')
运行结果:
关于python进度条的实现分享到这里了,上文介绍了很多python实现进度条的方法,需要的朋友可以参考参考,希望以上内容可以对大家有一定的帮助,可以学到更多python知识。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要为大家介绍了python神经网络Keras实现GRU及其参数量,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
浏览器到WSGI Server:浏览器发送的请求会先到WSGI Server;environ:WSGI Server会将HTTP请求中的参数等信息封装到environ(一个字典)中。
这篇文章主要介绍了python如何往列表头部和尾部添加元素,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
这篇文章主要介绍了Python中函数的参数类型详解,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
这篇文章主要介绍了如何利用Python写猜数字和字母的游戏,文章基于Python实现游戏小项目,感兴趣的朋友可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008