python使用tqdm模块处理文件阅读进度条显示

yizhihongxing

当我们需要处理大量的文件时,特别是在读取大文件时,会发现读取的过程异常耗时,无法反应出程序的实际运行状况。为了解决这个问题,我们可以使用进度条显示当前处理的进度,方便我们在终端直观地观察程序的进展。tqdm模块提供了一种简单易用的进度条显示方式,可以帮助我们更清晰地查看程序的运行情况,下面是使用tqdm模块实时显示文件读取进度的攻略。

安装tqdm模块

使用pip命令安装tqdm模块:

pip install tqdm

针对大文件的阅读进度条

当我们需要处理大文件时,最好采用以下示例中的方法,将文件划分成块以避免内存问题,同时实时显示进度条:

from tqdm import tqdm

chunk_size = 1024 * 1024
file_size = os.stat('/path/to/file').st_size

with open('/path/to/file', 'rb') as f:
    with tqdm(total=file_size, unit='B',
              unit_scale=True, desc='/path/to/file') as pbar:
        while True:
            chunk = f.read(chunk_size)
            if not chunk:
                break
            pbar.update(len(chunk))

首先,我们使用os模块中的stat函数获取文件大小。然后使用open函数打开文件,使用tqdm模块中的tqdm方法创建进度条,并指定单位为B,单位缩放为True,以及进度条的描述信息。然后我们不停的从文件中读取数据块,更新进度条,直到读完整个文件。

参数说明:

  • total:进度条所需更新的总数,也就是文件大小;
  • unit:进度条的计量单位,本例中为B,也可以指定为其他文件大小的计量单位,如MB或GB;
  • unit_scale:进度条计量单位是否自动缩放,默认为False;
  • desc:设定进度条的描述信息,默认为空;
  • chunk_size:每次读取文件块的大小,此处我们定义为1024 * 1024,即1 MB。

针对小文件的阅读进度条

如果我们需要读取小文件,可以使用以下示例:

from tqdm import tqdm
import time

with open('/path/to/file') as fin:
    for line in tqdm(fin, desc='/path/to/file', unit='line'):
        # 对每一行数据进行处理
        time.sleep(0.1)

在这个例子中,我们使用open函数打开文件,并使用tqdm函数创建进度条,并指定单位为line,以及进度条的描述信息。然后我们使用for循环,遍历每一行数据,并更新进度条。实际场景中,我们可以根据实际需要对每一行数据进行处理。

total参数不需要在这个例子中指定,系统会将行数自动计算。如果我们需要处理的是列表或者其他可迭代对象,可以将相应的对象作为参数传入tqdm函数中。

上述是使用tqdm模块处理文件阅读进度条显示的示例,能够有效提升代码的可读性和可维护性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python使用tqdm模块处理文件阅读进度条显示 - Python技术站

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

相关文章

  • python实现电脑操控安卓手机

    Python实现电脑操控安卓手机 简介 由于可以在电脑上方便地进行开发和快速编写多种自动化脚本,因此使用Python控制智能手机变得越来越普遍。同时,Python还有丰富的第三方库,如adb、uiautomator等,可用于控制Android设备。 本指南将为你提供 Python控制手机的完整攻略,包括安装所需工具、连接Android设备、操控屏幕等。 准备…

    python 2023年6月3日
    00
  • Python语法之精妙的十个知识点(装B语法)

    这里是完整攻略。 Python语法之精妙的十个知识点(装B语法) 1. 列表生成式(List Comprehensions) 列表生成式是用来快速生成一个列表的简洁语法。它的基本形式是:[expression for item in iterable]。其中 expression 是一个任意的 Python 表达式,item 是可迭代对象 iterable …

    python 2023年5月13日
    00
  • 详解Python的lambda函数用法

    详解Python的lambda函数用法 什么是lambda函数? lambda函数是Python中的匿名函数,它没有名称,并且可以在需要函数的任何位置定义和使用。Lambda函数有很短的语法,通常只包含一个语句,可以在不定义函数的情况下返回值。 lambda函数的语法 lambda arguments: expression lambda函数语法由三部分组成…

    python 2023年6月5日
    00
  • 详解Python函数print用法

    详解Python函数print用法 在Python中,print函数是一个用来将信息输出到控制台或是文件的基本函数。它可以将一个或多个对象以指定的格式输出到控制台,方便开发人员进行代码调试和程序运行状态的监控。 基本语法 下面是print函数的基本语法: print(*objects, sep=’ ‘, end=’\n’, file=sys.stdout, …

    python 2023年6月3日
    00
  • 使用Python制作一个数据预处理小工具(多种操作一键完成)

    下面是使用Python制作一个数据预处理小工具的完整攻略。 主要思路 该小工具的主要目的是为了在进行数据分析时,快速、方便地完成数据预处理。主要实现以下功能: 1.读取指定文件夹中的.csv数据文件; 2.对数据进行清洗,包括去除空值、去除重复值、去除异常值等; 3.对数据进行转换,包括将日期型数据转换为日期格式、将字符串格式转换为数值格式等; 4.对数据进…

    python 2023年5月13日
    00
  • Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块

    问题描述: 当在 Windows 环境下安装喜欢的 Python 版本(假如是 Python 3.6.8),然后尝试使用 import 语句导入某些 Python 模块时,你可能会遇到以下错误信息: ImportError: DLL load failed: 找不到指定的模块 这意味着 Python 程序无法在系统上找到缺失的 DLL 文件。 解决方案: 如…

    python 2023年5月13日
    00
  • Python推导式使用详情

    对于“Python推导式使用详情”的完整攻略,我会分以下几个方面来讲解: 什么是Python推导式 Python推导式的种类 Python推导式的使用方法 Python推导式的示例 1. 什么是Python推导式 Python推导式是用来简化某些特殊类型的代码的一种语法结构。其基本思想是通过一种简洁的方式提取一种数据集合中的有用数据,而且通常还能够对这些数据…

    python 2023年5月14日
    00
  • python+opencv实现移动侦测(帧差法)

    下面是详细讲解“Python+OpenCV实现移动侦测(帧差法)”的完整攻略。 1. 什么是移动侦测 移动侦测是指通过对视频或图像序列进行分析,检测出其中的运动目标。在视频监控、智能交通等领域中,移动侦测是一项重要的技术。 2. 帧差法原理 帧差法是一种简单有效的移动侦测算法,其原理是通过比较相邻帧之间的像素值差异,来检测出运动目标。具体实现过程如下: 读取…

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