python 处理超大文件

1、生成器 处理超大文件

        当处理超大文件时,使用生成器可以避免将整个文件读入内存中,从而减少内存占用,提高程序的效率。

        生成器是一种特殊的迭代器,可以通过函数来生成一系列的值,而不需要一次性生成所有值。在处理超大文件时,我们可以编写一个生成器函数来逐行读取文件,然后将每行数据作为生成器的一个值返回。

        以下是一个示例代码,展示如何使用生成器处理超大文件:

def read_large_file(file_path):
    """
    生成器函数,逐行读取超大文件
    """
    with open(file_path, 'r') as f:
        for line in f:
            yield line.strip().split(',')  # 将每行数据以列表形式返回,去除换行符和分隔符

# 使用生成器函数逐行读取超大文件
for row in read_large_file('large_table.csv'):
    # 处理每行数据
    pass

2、生成器 处理超大excel文件

        处理超大 Excel 文件的方法与处理超大表格文件类似,也可以使用生成器来逐行读取数据,避免将整个文件读入内存中。不过需要使用一些第三方库来处理 Excel 文件,例如 openpyxlxlrd 等。示例代码:

import openpyxl

def read_large_excel(file_path):
    """
    生成器函数,逐行读取超大 Excel 文件
    """
    workbook = openpyxl.load_workbook(file_path)
    worksheet = workbook.active
    for row in worksheet.iter_rows(values_only=True):
        yield row

# 使用生成器函数逐行读取超大 Excel 文件
for row in read_large_excel('large_file.xlsx'):
    # 处理每行数据
    pass

        代码中,使用 openpyxl 库来读取 Excel 文件,并通过 iter_rows 方法逐行读取数据。values_only=True 参数表示只返回单元格的值,而不包括格式等其他信息。

        注意:openpyxl 是一个比较大的库,如果只是处理简单的 Excel 文件,建议使用 xlrd 等轻量级库来读取数据。此外,对于非常大的 Excel 文件,可能需要使用专业的数据处理工具来处理,例如 Apache Spark 等。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值