python 表格库openpyxl、xlsxwriter、csv

一、python 表格库openpyxl、xlsxwriter、csv

openpyxl 和 xlsxwriter 都是流行的 Python 库,用于创建和操作 Excel 文件,但它们在处理大型数据集时可能会遇到一些性能和内存管理方面的限制。以下是可能导致这些库在处理大文件时不适用的一些因素:

  1. 内存占用: openpyxl 和 xlsxwriter 在创建和操作 Excel 文件时需要将数据完整地加载到内存中。对于大型文件,这可能会导致内存消耗过大,从而导致程序崩溃或卡住。
  2. 写入方式: 这些库的写入方式通常是将所有数据先保存在内存中,然后一次性写入文件。对于大文件,这可能会导致内存耗尽。
  3. 由于 Excel 文件格式的复杂性,这些库可能存在一些限制,导致在处理大文件时性能下降。
  4. 写入模式: 这些库的写入模式可能会导致每次写入都会重新创建整个文件,从而导致文件损坏或占用过多时间。

尽管 openpyxl 和 xlsxwriter 非常适合处理小到中等规模的数据集,但对于大型数据集,使用逐行写入或分批写入等方法来降低内存消耗可能是更好的选择。如果您坚持要使用这两个库来处理大型 Excel 文件,您可能需要仔细优化代码,使用分批写入和关闭工作簿等方法,以降低内存消耗并提高性能。但请注意,这些库的性能问题可能是由于 Excel 文件格式本身的复杂性造成的,因此在处理大型数据时仍然可能会遇到挑战。

二、当数据量比较大推荐使用csv,亲测性能和内存消耗较低

with open('DataRecord_20230814T140323_1402.dat', 'rb') as f:
    file_size = os.path.getsize('DataRecord_20230814T140323_1402.dat')
    print(file_size)
    index = 0
    while True:
        index +=1
        print(index)
        binary_data = f.read(struct.calcsize(add_start_and_end))
        if not binary_data:
            break
        parsed_data = struct.unpack(add_start_and_end, binary_data)
        with open(csv_file, 'a', newline='') as f1:
            writer = csv.writer(f1)
            writer.writerow(parsed_data)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值