利用 print 函数动态显示任务进度

一、print函数实现

flush参数:

在print函数的所有参数中,有一个关键字参数叫flush,这个参数为True时会将缓冲区的内容直接性输出。

\r转义字符:

转义字符\r会每次回到开头
我们可以巧妙利用flush参数和转义字符"\r"实现进度显示:

for i in range(101):
	print("%d%"%i, end="", flush=True)

这样我们就可以实现从进度的展示了
进度

二、tqdm模块

tqdm是 Python 进度条库,可以在 Python 长循环中添加一个进度提示信息用法:tqdm(iterator)。

安装

tqdm不是Python的官方自带库,需要用户自行安装。我们可以通过pip进行安装tqdm库:

pip install tqdm

使用

1. 进度条显示

tqdm()中需要传递一个可迭代对象;
trange()是对range()函数的封装,相当于tqdm(range()),效果和上面相同

import time
from tqdm import tqdm

for i in tqdm(range(10)):
    time.sleep(1)

效果:
100%|██████████| 10/10 [00:10<00:00,  1.00s/it]
2. 进度条设置描述
import time
from tqdm import tqdm

pbar = tqdm(["a", "b", "c", "d"])
for char in pbar:
    # 设置描述
    pbar.set_description("Processing")
    time.sleep(1)

效果:
Processing: 100%|██████████| 4/4 [00:04<00:00,  1.00s/it]
3. 手动设置更新
import time
from tqdm import tqdm

# 总数100,每次更新5,一共更新20次
# 方法一:
with tqdm(total=100) as pbar:
  for i in range(20):
    pbar.update(5) 
    time.sleep(1)

#方法二:
pbar = tqdm(total=200)  
for i in range(20):  
    pbar.update(5)
    time.sleep(1)
pbar.close()

效果:
100%|██████████| 100/100 [00:20<00:00,  5.00it/s]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值