• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    python实现进度条的多种实现

    有时候在使用Python处理比较耗时操作的时候,为了便于观察处理进度,这时候就需要通过进度条将处理情况进行可视化展示,以便我们能够及时了解情况。这对于第三方库非常丰富的Python来说,想要实现这一功能并不是什么难事。

    tqdm就能非常完美的支持和解决这些问题,可以实时输出处理进度而且占用的CPU资源非常少,支持循环处理、多进程、递归处理、还可以结合linux的命令来查看处理情况,等进度展示。

    tqdm在阿拉伯语中的意思是“进展”,是python中一个快速、扩展性强的进度条工具库,能让我们了解代码的运行进度,也能让我们的运行结果看起来显得更加美观而又高大上!!

    先来看一下进度条的效果。

    示例代码:

    from tqdm import tqdm
     
    for i in tqdm(range(int(9e7))):
        pass

    运行结果:

    可以看到,当我们的代码的运行需要较长时间时,进度条可以很好的帮助我们了解整个代码的运行进度。

    一、tqdm相关操作

     1、迭代对象处理

    对于可以迭代的对象都可以使用下面这种方式,来实现可视化进度,非常方便。

    示例代码:

    import time
    from tqdm import tqdm
     
    for i in tqdm(range(100)):
        time.sleep(0.1)
        pass

    运行结果:

    2、观察处理的数据

    通过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)

    运行结果:

    3、pandas中使用tqdm

    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

    运行结果:

    4、多进程进度条

    在使用多进程或者嵌套循环处理任务的时候,我们通过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)

    运行结果:

    5、自定义进度条显示信息

    通过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_descriptionset_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)

    运行结果:

    6.tqdm(range(n))替换为trange(n)

    我们在使用tqdm的时候,可以将tqdm(range(n))替换为trange(n),让你的代码看起来更加简洁而又高大上!

    示例代码:

    from tqdm import trange
    import time
     
    for i in trange(100):
        time.sleep(0.1)
        pass

    运行结果:

    7.在jupyter notebook中使用进度条tqdm:

    示例代码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进度条tqdm的使用
    • Python显示进度条的方法
    • Python实现带百分比的进度条
    • Python实现采用进度条实时显示处理进度的方法
    • Python使用progressbar模块实现的显示进度条功能
    • Python进度条实时显示处理进度的示例代码
    • python动态文本进度条的实例代码
    • python控制台中实现进度条功能
    • 六种酷炫Python运行进度条效果的实现代码
    上一篇:教你如何使用Python下载B站视频的详细教程
    下一篇:python中requests库+xpath+lxml简单使用
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    python实现进度条的多种实现 python,实现,进度,条,的,多种,