Python中基于tqdm实现进度条

tqdm官网:https://pypi.org/project/tqdm/

关于tqdm使用的方法有很多,本文简单介绍两种常用方法

基于迭代用法演示:

用tqdm()包住可迭代对象
from tqdm import tqdm
from time import sleep

text = ""
for char in tqdm(["a", "b", "c", "d"]):
    sleep(0.25)
    text = text + char

运行结果:
基础用法.gif
特殊优化实例trange()
from tqdm import trange
from time import sleep

for i in trange(100):
    sleep(0.01)

运行结果:
trange用法.gif
循环外的实例化对tqdm()进行手动控制
from tqdm import tqdm
from time import sleep

process_bar = tqdm(["a", "b", "c", "d"])
for char in process_bar:
    sleep(0.25)
    process_bar.set_description("Processing %s" % char)

运行结果:
手动.gif

手动更新:使用with语句手动控制tqdm()更新

from tqdm import tqdm
from time import sleep

with tqdm(total=100) as process_bar:
    for i in range(10):
        sleep(0.1)
        process_bar.update(10)

运行结果:
with用法.gif
with用法内可常用的参数:

iterable :可以使用进度条进行装饰。 保留空白以手动管理更新。
desc :进度栏的前缀
total :预期的迭代次数
ncols :整个输出消息的宽度。进度条的长度
unit_scale :如果为1或True,则迭代次数将自动减少/缩放
colour :条形颜色
leave :迭代完成时进度条是否保留

eg:
with open(download_path, mode='ab') as file_obj, tqdm(total=file_size, desc=file_name,
                                                      leave=True, ncols=80, unit='B',
                                                      unit_scale=True) as process_bar:
    process_bar.update(len(content))

你可能感兴趣的:(Python中基于tqdm实现进度条)