zoukankan      html  css  js  c++  java
  • Python的Tqdm模块——进度条配置

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

    Github地址:https://github.com/tqdm/tqdm

    简介

    ​ Tqdm 是一个快速,可扩展的Python进度条,可以在 Python 长循环中添加一个进度提示信息,用户只需要封装任意的迭代器 tqdm(iterator)。

    ​ 总之,它是用来显示进度条的,很漂亮,使用很直观(在循环体里边加个tqdm),而且基本不影响原程序效率。名副其实的“太强太美”了!这样在写运行时间很长的程序时,是该多么舒服啊!

    给一张GIF图看一下实际效果

    img

    安装

    pip install tqdm
    

    使用

    示例一

    简单的demo:

    # !/user/bin/env python
    # -*- coding:utf-8 -*-
    
    
    import time
    from tqdm import tqdm
    from tqdm._tqdm import trange
    
    for i in tqdm(range(100)):
        time.sleep(0.01)
    

    输出结果如下:

    img

    关于tqdm对于range的封装

    import time
    from tqdm import tqdm
    from tqdm._tqdm import trange
    
    for j in trange(100):
        time.sleep(0.1)
    

    输出结果如下(同上)

    img

    示例二:

    对于任意list的使用

    alist = list('letters')
    bar = tqdm(alist)
    for letter in bar:
        bar.set_description(f"Now get {letter}")
    

    输出结果如下:

    img

    传入任意list

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

    手动控制更新

    with tqdm(total=100) as pbar:
        for i in range(10):
            pbar.update(10)
    
    
    # 也可以这样
    pbar = tqdm(total=100)
    for i in range(10):
        pbar.update(10)
    pbar.close()
    

    示例三:

    结合pandas的使用

    import  pandas as pd
    import numpy as  np
    
    df = pd.DataFrame(np.random.randint(0, 100, (10000000, 6)))
    tqdm.pandas(desc="my bar!")
    df.progress_apply(lambda x: x**2)
    

    输出结果如下:

    img

    示例四

    在Shell的tqdm用法

    $ time find . -name '*.py' -exec cat {} ; | wc -l
    857365 
    
    real    0m3.458s
    user    0m0.274s
    sys     0m3.325s 
    
    $ time find . -name '*.py' -exec cat {} ; | tqdm | wc -l
    857366it [00:03, 246471.31it/s]
    857365
     
    real    0m3.585s
    user    0m0.862s
    sys     0m3.358s
    

    使用的参数:

    $ find . -name '*.py' -exec cat {} ; |
        tqdm --unit loc --unit_scale --total 857366 >> /dev/null
    100%|███████████████████████████████████| 857K/857K [00:04<00:00, 246Kloc/s]
    
    

    备份一个目录:

    $ 7z a -bd -r backup.7z docs/ | grep Compressing |
        tqdm --total $(find docs/ -type f | wc -l) --unit files >> backup.log
    100%|███████████████████████████████▉| 8014/8014 [01:37<00:00, 82.29files/s]
    
    

    本文参考:https://blog.csdn.net/langb2014/article/details/54798823?locationnum=8&fps=1

  • 相关阅读:
    RAID磁盘阵列介绍
    Nginx如何使用Nginx实现MySQL数据库的负载均衡
    挽救数据库性能的30条黄金法则
    mysql主从复制 (指定复制的数库或者表)
    Nginx系列之负载均衡策略
    Redis安装部署(一主二从三哨兵)
    让你的 Linux 命令骚起来
    MySQL/数据库 知识点总结
    Docker私有仓库搭建与界面化管理
    mysql sql语句修改字段名称,字段长度
  • 原文地址:https://www.cnblogs.com/hanfe1/p/13926879.html
Copyright © 2011-2022 走看看