Python进度条tqdm的用法详解

yizhihongxing

Python进度条tqdm的用法详解

简介

Python中的tqdm是一个用于显示进度条的库,可以方便地在循环时显示任务的进度条,使代码更加美观而又直观。

tqdm 默认情况下可以显示进度条、已完成的百分比、已完成的任务数量、预计剩余时间等信息。

安装

通过pip安装tqdm库:

pip install tqdm

基本用法

使用tqdm最基本的用法是通过包裹一个可迭代对象来展示其循环进度:

from tqdm import tqdm

for i in tqdm(range(1000000)):
    pass

上面的代码演示了一个循环执行了 1000000 次的例子,可以看到tqdm以进度条的形式实时展示了整个循环的完成情况。

高级用法

1. 控制刷新时间

tqdm 默认的刷新时间是 0.5 秒,我们可以通过设置参数 mininterval 改变刷新时间:

from tqdm import tqdm

for i in tqdm(range(1000000), mininterval=0.1):
    pass

上面的代码将每 0.1 秒刷新一次进度。

2. 指定进度条样式

tqdm 支持多种不同的进度条样式,我们可以通过设置参数 bar_format 来指定:

from tqdm import tqdm

for i in tqdm(range(1000000), bar_format='{l_bar}{bar:10}{r_bar}{bar:-10b}'):
    pass

上面的代码展示了另一种不同样式的进度条格式,整个进度条被分为左、中、右三部分:

  • l_bar:指的是进度条的左部分,在左边空多少格都可以通过{n}控制,具体可以参考官方文档;
  • bar:指的是进度条本身,默认展示为 的形式,可以通过 {bar:<length.char>} 来控制长度和填充字符;
  • r_bar:指的是进度条的右部分,在右边空多少格同样可以通过{n}控制;
  • bar:-10b:指进度条背后的百分比,-10代表占位符宽度为10,b表示二进制形式表示百分比;

示例代码

示例1: 统计列表元素

下面这个例子演示了如何使用进度条遍历列表元素并且统计它们,同时设置了进度条的样式:

from tqdm import tqdm

data = [1,2,3,4,5,6,7,8]
result = 0

for i in tqdm(data, bar_format='{l_bar}{bar:10}{r_bar}{bar:-10b}'):
    # 统计数据
    result += i

print(result)

输出结果:

100%|███████████████████████████████████████████| 8/8 [00:00<00:00, 1689.94it/s]

36

示例2: 文件拷贝

下面这个例子演示了如何使用进度条将一个文件拷贝到另一个文件并且展示拷贝的进度:

from tqdm import tqdm

with open('input.mp4', 'rb') as f1, open('output.mp4', 'wb') as f2:
    # 文件总大小
    total_size = os.fstat(f1.fileno()).st_size
    # 读取并写入文件
    with tqdm(total=total_size, unit='B', unit_scale=True, unit_divisor=1024, desc='Copying file', miniters=1) as t:
        while True:
            # 一次读取1024*1024个字节(1M)
            data = f1.read(1024 * 1024)
            if not data:
                break
            # 写入数据
            f2.write(data)
            # 更新进度条
            t.update(len(data))

上面的代码分别使用了如下参数:

  • total_size表示拷贝的文件总大小;
  • unit='B'表示使用字节作为单位;
  • unit_scale=True表示自动根据文件大小调整单位(KB/MB/GB/...);
  • unit_divisor=1024表示进制基数,单位转换时用到;
  • desc='Copying file'表示进度条的描述信息;
  • miniters=1表示每秒钟最少刷新一次;

如果你尝试拷贝一个大文件,你将会看到一个进度条在不断增长,从而显示当前的进度。

总结

tqdm是一个很好用的Python进度条库,可以方便地展示循环进度,使代码在执行过程中更美观,在大规模数据处理和归类的场景下也可以为开发者节省不少时间。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python进度条tqdm的用法详解 - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • python实现简易内存监控

    让我们来讲解一下“Python实现简易内存监控”的攻略。 1. 背景介绍 内存监控是一种常用的系统性能监控手段,可以帮助我们及时发现内存泄漏、分析应用程序内存使用等问题。本文将介绍如何使用Python实现一款简易内存监控程序。 2. 实现步骤 2.1. 安装依赖库psutil 使用Python实现内存监控需要安装psutil库,它是一个跨平台的进程和系统信息…

    python 2023年6月3日
    00
  • python 对excel交互工具的使用详情

    下面我将详细讲解Python对Excel交互工具的使用详情的完整实例教程。 Python对Excel交互工具的使用 Python对Excel交互工具的主要功能是对Excel表格进行读写、数据处理和操作等操作,其能够使用Python编程语言的特性快速、高效地完成Excel表格数据的处理和分析。 在Python中,使用openpyxl第三方库来进行Excel交互…

    python 2023年5月13日
    00
  • python调用百度语音REST API

    下面给您详细讲解Python调用百度语音REST API的完整攻略。 什么是百度语音REST API 百度语音REST API是百度提供的语音识别、语音合成、人脸识别等功能接口,可以通过HTTP或HTTPS协议请求,返回结果以JSON格式返回。相比于其他技术方案,百度的语音技术有以下优势: 识别准确率高:百度的语音识别准确率达到了业界领先水平; 支持离线识别…

    python 2023年5月19日
    00
  • 解决pandas中读取中文名称的csv文件报错的问题

    要解决pandas中读取中文名称的csv文件报错的问题,需要按照以下步骤进行操作: 步骤一:使用正确的编码格式 在使用pandas中读取csv文件时,如果文件中含有中文,需要指定正确的编码格式。最常用的编码格式是utf-8和gbk。具体示例如下: import pandas as pd data=pd.read_csv(‘file_with_chinese_…

    python 2023年5月20日
    00
  • 如何用Python生成二维码、解析二维码

    生成二维码和解析二维码是Python中常见的任务之一。在本攻略中,我们将介绍如何使用Python生成二维码和解析二维码。我们将使用qrcode和opencv-python库来实现这些功能。 生成二维码 在Python中,我们可以使用qrcode库来生成二维码。以下是一个示例代码: import qrcode # 生成二维码 img = qrcode.make…

    python 2023年5月15日
    00
  • windows10系统中安装python3.x+scrapy教程

    下面给出在windows10系统中安装Python3.x和Scrapy的完整攻略: 安装Python3.x 下载Python3.x安装包 首先,我们需要去Python官网下载最新的Python3.x安装包,网址是 https://www.python.org/downloads/ 。建议选择最新的稳定版,即左侧的Download Python 3.x.x按钮…

    python 2023年5月30日
    00
  • python接口自动化(十七)–Json 数据处理—一次爬坑记(详解)

    Python接口自动化(十七)–Json数据处理—一次爬坑记(详解) 在Python接口自动化中,我们经常需要处理JSON格式的数据。本文将介绍如何使用Python处理JSON数据,并提供一次爬坑记的详细解释。 JSON数据处理 JSON是一种轻量级的数据交换格式,常用于Web应用程序中。Python提供了内置的json模块,用于处理JSON数据。 将…

    python 2023年5月15日
    00
  • Python利用shutil模块实现文件的裁剪与压缩

    下面是详细讲解“Python利用shutil模块实现文件的裁剪与压缩”的完整攻略。 什么是shutil模块 shutil模块是Python的一个标准库,它提供了一些文件和文件夹操作的函数,包括复制、移动、删除、压缩、解压等等。在Python中使用shutil模块可以很方便地实现文件和文件夹的操作。 如何使用shutil模块实现文件的裁剪与压缩 文件裁剪 有时…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部