You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

低内存占用的文件头部追加字节数组实现方案咨询

低内存占用的文件头部写入实现方案

原实现通过一次性读取整个文件到内存,处理40GB以上大文件时会导致内存占用过高,在内存有限的NAS设备上极易引发问题。解决核心是采用分块读写的方式,避免一次性加载整个文件。

改进后的实现代码

def write_byte_array_to_beginning_of_file(byte_array, file_path, out_file_path, chunk_size=4096):
    # 先写入需要添加的头部byte数组
    with open(out_file_path, "wb") as f_out:
        f_out.write(byte_array)
        # 分块读取原文件并逐块写入输出文件
        with open(file_path, "rb") as f_in:
            while True:
                chunk = f_in.read(chunk_size)
                if not chunk:
                    break
                f_out.write(chunk)

关键说明

  • 分块读取:每次仅读取chunk_size大小的数据块(默认4KB,可根据内存情况调整为64KB等),内存仅保留当前块和头部的小JPEG字节数组,占用极低。
  • 顺序写入:先写入头部数据,再逐块追加原文件内容,保证最终文件结构符合需求,后续拆分还原时可正常识别头部的JPEG数据。
  • 安全操作:通过生成新文件而非直接修改原文件的方式,避免大文件修改过程中出现异常导致数据损坏,验证新文件无误后可再替换原文件。

内容的提问来源于stack exchange,提问作者user898082

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 17:06:21