python 如何使用进度条_如何用 Python 给程序加个进度条?

原标题:如何用 Python 给程序加个进度条?

作者 | 猿媛牧场

责编 | 郭芮

对于开发或者运维来说,使用 Python 去完成一些跑批任务,或者做一些监控事件是非常正常的情况。那么如何有效地监控任务的进度?除了在任务中加上 Log 外,还能不能有另一种方式来了解任务进展到哪一步了呢?

这就是今天我们来了解的内容——进度条。

▌标准输出

首先说一下在操作系统中,都有哪些控制符:

r: 将光标移动到当前行的首位而不换行;

n:将光标移动到下一行,并不移动到首位;

rn:将光标移动到下一行首位。

那让我们来看下如何通过 Python 来将标准输出中添加进度条吧。

importsys

importtime

defprogress_bar(total):

"""

进度条效果

"""

# 获取标准输出

_output = sys.stdout

# 通过参数决定你的进度条总量是多少

forcount inrange( 0, total + 1):

# 这里的second只是作为工作量的一种代替

# 这里应该是有你的主程序,main()

_second = 0.1

# 模拟业务的消耗时间

time.sleep(_second)

# 输出进度条

_output.write( f'rcomplete percent:{count:.0f}')

# 将标准输出一次性刷新

_output.flush()

progress_bar( 100)

来看下实际效果,这里我录了一段GIF:

▌Tqdm 模块

Tqdm 是一个快速、扩展性强的进度条工具库,它提供了非常多的接口,有兴趣的小伙伴可以了解一下。

GitHub 地址是:https://github.com/tqdm/tqdm。

我们来看下,如何使用 Tqdm 模块来实现进度条。

1. 首先是安装,非常简单。

pipinstall tqdm

2. 接下来就是具体的操作。

fromtime importsleep

fromtqdm importtqdm

# 这里同样的,tqdm就是这个进度条最常用的一个方法

# 里面存一个可迭代对象

fori intqdm(range( 1, 500)):

# 模拟你的任务

sleep( 0.01)

是不是看到这里发现,Tqdm 非常的简单呢?这只是一个例子,它也可以非常的复杂,同时也支持多线程、多进程,还有 Pandas。

来一个多进程的感受下吧。

所有的代码都已经 Push 到我的 GitHub 上去了,有兴趣的小伙伴可以前去Download。

Miracle Github:https://github.com/MiracleYoung/exercises

声明:本文为作者投稿,版权归作者所有。

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值