当前位置:   article > 正文

python 表格库openpyxl、xlsxwriter、csv_openpyxlwriter

openpyxlwriter

一、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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/855807
推荐阅读
相关标签
  

闽ICP备14008679号