使用Python tqdm让你的代码进度条更丰富有趣

使用Python tqdm让你的代码进度条更丰富有趣在编写长时间运行的代码时,我们常常会使用进度条来实时显示任务的进度。Python提供了许多实现进度条的库,其中tqdm是一个高度可定制的库,它可以让你的代码进度条更加丰富有趣。

在编写长时间运行的代码时,我们常常会使用进度条来实时显示任务的进度。Python提供了许多实现进度条的库,其中tqdm是一个高度可定制的库,它可以让你的代码进度条更加丰富有趣。

一、简介

tqdm是一个Python的进度条库,它可以在循环迭代时实时显示任务的进度,支持多种方式的进度条样式,可以自定义进度条的位置、颜色、速度等。安装tqdm库十分简单,只需在终端输入以下命令:

    pip install tqdm

安装完成后,我们可以直接在代码中使用它,来创建漂亮的进度条。

二、基础使用

让我们首先看一下最简单的使用方式。下面的代码演示了tqdm在循环中的基本用法:

    # 导入tqdm模块
    from tqdm import tqdm
    
    # 执行循环
    for i in tqdm(range(1000)):
        # 这里是循环的操作

以上代码使用了tqdm工具实现了一个简单的进度条。通过tqdm函数,我们将range(1000)传递进去,然后在for循环中使用tqdm遍历range(1000)中的元素。tqdm将自动显示进度条,并实时更新进度。我们还可以仅仅使用tqdm函数,如下所示:

    # 导入tqdm模块
    from tqdm import tqdm
    
    # 执行循环
    for i in tqdm(range(1000)):
        # 这里是循环的操作

此时会使用默认样式显示进度条,如下所示:

  5%|███▏                                                                             | 50/1000 [00:00<00:01, 489.96it/s]

默认样式比较简单,只有一个进度条,但我们可以使用一些其他的样式来更好地展示进度条,后面会提到。

三、自定义样式

tqdm是一个高度可定制的库,你可以使用各种可用参数来定制进度条。下面介绍一些可用的参数:

  • total:表示迭代次数。
  • position:进度条的位置。
  • desc:进度条的描述信息。
  • unit:进度条每个单位的描述信息。
  • bar_format:进度条的样式,可以自定义。

下面的代码演示了如何使用以上参数进行自定义。

    # 导入tqdm模块
    from tqdm import tqdm
    
    # 使用自定义样式
    with tqdm(total=100, position=0, desc='Downloading', unit='file') as pb:
        for i in range(100):
            pb.update(1)

以上代码定义了进度条总共需要迭代100次,进度条显示在第一行,进度条的描述为’Downloading’,每个单位为’file’。而pb.update(1)则表示迭代次数加1。这段代码的效果如下:

Downloading: 100%|█████████████████████████████████████████████████████████████████████| 100/100 [00:00<00:00, 4811.35it/s]

可以看到,我们自定义的样式不仅包含了进度条,还有进度条当前的百分比,已处理的文件数、总文件数、处理速度等信息。所有这些信息都可以在bar_format这个参数中进行自定义。

四、更多自定义样式

tqdm提供了许多内置的进度条样式,我们可以从中选择适合自己项目的样式。下面是一些常见的样式:

  • ‘bar’: 进度条样式,如[=== ]
  • ‘barh’: 水平样式,如[= ]
  • ‘progress’: 进度和百分比
  • ‘percentage’: 进度百分比
  • ‘count’: 进度条计数
  • ‘n’: 显示n的当前值

在我们的代码中,可以设置如下参数进行自定义样式:

    # 导入tqdm模块
    from tqdm import tqdm
    
    # 使用进度计数样式
    with tqdm(range(1000), desc='Processing', unit='document', bar_format='{l_bar}{bar:20}{r_bar}{bar:-20b}') as pb:
        for i in pb:
            # 这里是循环的操作
        pb.update(1)

以上代码使用了默认的样式,但是在此基础上设置了进度条的左边缘、进度条、右边缘和进度条两端之间的长度分别为1、20、1、20。效果如下:

Processing: 100%|████████████████████████████████████████████████████████████████| 1000/1000 [00:00<00:00, 44730.08document/s]

除了基本样式之外,我们还可以使用tqdm提供的更丰富的样式,如下所示:

    # 导入tqdm模块
    from tqdm import tqdm
    
    # 使用设置颜色样式
    with tqdm(range(100), bar_format='\x1b[32m{bar}\x1b[0m') as pb:
        for i in pb:
            # 这里是循环的操作
            pb.set_postfix({'process': i})

以上代码使用了绿色的进度条样式,并且在进度条右边显示了当前进度。效果如下:

 35%|██████████████████████████▋                                                | 35/100 [00:00<00:00, 343.92it/s, process=35]

可以看到,我们的进度条不仅可以改变颜色,还可以显示进度条右边的其他信息。

五、总结

使用Python tqdm库可以让你的代码进度条更加丰富多彩,许多内置的样式可以让我们自定义不同的进度条样式。通过tqdm,我们能够更好地把握任务进度,让编写代码更加愉快。

如果想要学习更多关于tqdm的使用,可以参考它的官方文档: https://github.com/tqdm/tqdm

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/21951.html

(0)
上一篇 2024-03-02
下一篇 2024-03-02

相关推荐

  • 文献搜索算法[亲测有效]

    文献搜索算法[亲测有效]搜索算法是利用计算机的强大计算能力来有目的的穷举一个问题的解空间的部分或所有的可能情况,从而求出问题的解的一种方法。在具体的实现中往往是一段计算机代码,用来在大型的数据库中查找具有特定属性的项目。 …

    2023-01-31
    127
  • 【Gap锁】Mysql的Gap锁在中文列下间隙怎样确定?「建议收藏」

    【Gap锁】Mysql的Gap锁在中文列下间隙怎样确定?「建议收藏」通过本文记录一次Gaplock的验证,网上大多gaplock是基于明确是数字型列来测试gaplock的,这里不再重复,随便贴个相关地址:https://www.cnblogs.com/crazylqy

    2022-12-26
    120
  • 利用upper函数创建标题

    利用upper函数创建标题在编程中,我们经常需要对字符串进行处理。其中,转换字符串的大小写是一个常见的需求。在Python中,我们可以使用字符串的upper()函数把字符串的小写字母转换成大写字母,这个函数可以用来创建标题。

    2024-04-28
    62
  • 掌握Python Range范围,轻松编程

    掌握Python Range范围,轻松编程Python语言是一种高级编程语言,它诞生于上世纪90年代初期,当时由荷兰人Guido van Rossum编写,它的独特之处在于语言简洁易懂,适合初学者入门,并且终身学习都不会过时。Python有许多内置函数,其中Range()函数是很有用的一个,它可以让我们方便、简洁地实现循环输出指定长度范围的数字序列。在本文中,我们将深入探讨Range()函数的相关内容,帮助读者轻松掌握这个实用的函数,并且让读者感受到Python语言的优美之处。

    2024-04-17
    56
  • Linux 利用Cgroup 资源控制「终于解决」

    Linux 利用Cgroup 资源控制「终于解决」GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。 GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。 cgroups 是Linux内核提供的可以限制进程所

    2023-06-02
    124
  • sql数据类型_8大基本数据类型

    sql数据类型_8大基本数据类型SQL列的数据类型分类: Unicode数据: 1.nchar 2.nvarchar 3.ntext 说明: Unicode支持的字符范围更大。存储 Unicode 字符所需要的空间更大。 傻瓜式教程

    2023-02-17
    119
  • MySQL日志简介「建议收藏」

    MySQL日志简介「建议收藏」一.MySQL日志简介 二.错误日志 作用: 记录mysql数据库的一般状态信息及报错信息,是我们对于数据库常规报错处理的常用日志。 默认位置: $MYSQL_HOME/data/ 开启方式: (My

    2022-12-18
    121
  • 直播报名| Kylin on Parquet 介绍及快速上手

    直播报名| Kylin on Parquet 介绍及快速上手熟悉的 Kylin 的朋友都知道,Apache Kylin 构建完的数据是存储在 HBase 中的。Kylin on HBase 方案经过长时间的发展已经比较成熟,但是也还存在着一定的局限性。面对以上

    2023-02-16
    126

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注