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

Python/Jupyter下不调用pd.read_csv直接拼接合并CSV文件方法

大体积CSV无加载直接拼接实现

核心逻辑是通过二进制流逐块读写完成拼接,全程不解析、不加载全量文件内容,完全不依赖pd.read_csv,内存占用稳定在10MB级别,不会出现大文件加载时的内存溢出报错。

前置要求

  • 两个待拼接CSV的列名、列顺序、字段格式完全一致,否则合并后会出现数据错位
  • 运行代码前确保两个源文件没有被其他程序占用

实现代码

import os

# 单次读写块大小,设为10MB,可根据磁盘性能自行调整
CHUNK_SIZE = 10 * 1024 * 1024
file_a = os.path.join("my folder", "a.csv")
file_b = os.path.join("my folder", "b.csv")
file_merged = os.path.join("my folder", "merged.csv")

# 完整写入第一个CSV的所有内容
with open(file_a, "rb") as fin, open(file_merged, "wb") as fout:
    while True:
        content = fin.read(CHUNK_SIZE)
        if not content:
            break
        fout.write(content)

# 追加第二个CSV内容,跳过首行表头避免重复
with open(file_b, "rb") as fin, open(file_merged, "ab") as fout:
    fin.readline()  # 丢弃表头行
    while True:
        content = fin.read(CHUNK_SIZE)
        if not content:
            break
        fout.write(content)

补充说明

  • 二进制读写模式不会修改原文件编码,不管文件是utf-8、带BOM的utf-8还是gbk编码都能正常拼接
  • 拼接速度只受磁盘读写速度限制,比pandas加载后合并快10~100倍
  • 如果需要拼接更多同结构CSV,只需要仿照第二个文件的处理逻辑循环追加即可,每个后续文件都要跳过首行表头
  • 如果确认第二个文件没有多余表头(比如提前做过去除处理),删掉fin.readline()这行即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 22:06:24