Python 进度条的神器tqdm

大家好,在编写Python脚本时,尤其是那些需要处理大量数据或者执行耗时操作的脚本,监控任务进度是非常重要的。

有没有想过在你的Python脚本中添加一个进度条,让你可以清楚地看到任务的完成进度?这时候,tqdm库就派上用场了。

什么是tqdm?

tqdm 是一个快速、可扩展的 Python 进度条库。它的名字来自阿拉伯语“taqaddum”,意思是“进步”。使用tqdm,你可以非常轻松地在 Python 脚本中添加进度条,而无需编写复杂的代码。

图片

为什么使用tqdm?

  • • 简单易用:只需在迭代对象前添加tqdm,就可以显示进度条。
  • • 功能丰富:支持自定义进度条样式、嵌套进度条、在多线程或多进程环境中使用等。
  • • 高效:对性能几乎没有影响,可以流畅运行在大多数环境中。

tqdm的安装

pip install tqdm

基本用法

让我们从最简单的用法开始:

from tqdm import tqdm
import time

# 简单的循环
for i in tqdm(range(100)):
    time.sleep(0.1)  # 模拟一些耗时操作

在上面的代码中,我们使用tqdm(range(100))替代了普通的range(100),这会在循环执行时显示一个进度条。

图片

自定义进度条

tqdm 允许我们自定义进度条的许多属性,例如描述文字、进度条格式等:

from tqdm import tqdm
import time
for i in tqdm(range(100), desc="Processing", ncols=100, ascii=True):
    time.sleep(0.1)

在这段代码中,我们添加了desc参数来设置进度条的描述,ncols参数来设置进度条的宽度,ascii参数来使用ASCII字符显示进度条。

图片

在函数中使用tqdm

你可以在任何可迭代对象前使用tqdm,例如列表、生成器等:

from tqdm import tqdm
import time
def process_items(items):
    for item in tqdm(items, desc="Processing items"):
        time.sleep(0.1)  # 模拟处理时间

items = list(range(100))
process_items(items)
图片

在Pandas中使用tqdm

如果你经常处理数据,可能会使用Pandas库。幸运的是,tqdm与Pandas也可以很好地结合:

import pandas as pd
from tqdm import tqdm

tqdm.pandas(desc="Processing DataFrame")

df = pd.DataFrame({"a": range(100)})
df["a"].progress_apply(lambda x: time.sleep(0.1))  # 模拟处理时间
图片

进阶用法

tqdm 还支持嵌套进度条、在多线程和多进程环境中使用等高级功能。

嵌套进度条

当你有多重嵌套循环时,可以使用tqdm的嵌套进度条:

from tqdm import tqdm
import time

for i in tqdm(range(3), desc="Outer Loop"):
    for j in tqdm(range(100), desc="Inner Loop", leave=False):
        time.sleep(0.01)
图片

多线程和多进程

tqdm 还可以与多线程和多进程一起使用,通过ThreadPoolProcessPool

from tqdm import tqdm
from concurrent.futures import ThreadPoolExecutor

def process_item(item):
    time.sleep(0.1)
    return item

items = list(range(100))

with ThreadPoolExecutor(max_workers=4) as executor:
    list(tqdm(executor.map(process_item, items), total=len(items)))
图片

tqdm 是一个非常有用的库,可以帮助你在执行耗时任务时轻松地监控进度。它不仅使用简单,而且功能丰富,适用于各种场景。

原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/89490.html

(0)
guozi's avatarguozi
上一篇 2024年6月4日 下午3:43
下一篇 2024年6月4日 下午3:48

相关推荐

  • 国产服务器操作系统

    信创      “信创”,即信息技术应用创新,作为科技自立自强的核心词汇,在我国信息化建设的进程中扮演着至关重要的角色。自2016年起步,2020年开始蓬勃…

    行业资讯 2024年5月31日
    0
  • 如何快速恢复数据?

    当今社会,随着网络的发展,网络安全问题也越来越受到人们的关注。在网络安全加速行业中,数据恢复是一个不可忽视的重要环节。但是,当我们的数据遭遇意外丢失时,如何快速恢复呢?本文将为您介…

    行业资讯 2024年4月21日
    0
  • 如何高效回收旧服务器?

    随着科技的不断发展,服务器已经成为了企业和个人必不可少的设备。但是随着服务器的更新换代,旧服务器也逐渐成为了负担。如何处理这些旧服务器?如何高效回收旧服务器?这是一个困扰着许多企业…

    行业资讯 2024年3月29日
    0
  • 网站被攻击有什么表现,网站被攻击后无法访问的解决方案有哪些内容

    在互联网行业,网站遭受攻击的情况时有发生。如果网站受到攻击,可能会导致无法访问,从而给企业和用户造成重大损失。那么我们该如何解决这种意外情况呢?本文提供了网站被攻击后无法访问的解决…

    行业资讯 2024年5月7日
    0

发表回复

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