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

如何不使用pandas等数据框工具,用Python将多个同结构CSV合并为总表

不依赖数据框类工具的CSV合并方案

所有方案的前提是所有待合并CSV的表头(列名、列顺序)完全一致,如果存在列缺失/顺序不同的情况,需要先对齐结构再合并。

方案1:命令行快速合并(适合无内嵌特殊格式的小文件)

该方案操作最快,仅适合字段内无换行、无特殊转义字符的标准CSV:

  • 类Unix系统(Linux/macOS):
    1. 提取首个文件的表头写入结果文件:head -n 1 第一个文件.csv > master.csv
    2. 追加所有文件的非表头内容:tail -n +2 *.csv >> master.csv
  • Windows CMD环境:
    直接运行单行命令自动处理表头:set "first=1" & for %f in (*.csv) do @if defined first (type "%f" > master.csv & set "first=") else (more +1 "%f" >> master.csv)
  • Windows PowerShell环境:
    # 写入表头
    Get-ChildItem *.csv | Select-Object -First 1 | Get-Content -TotalCount 1 | Out-File master.csv -Encoding utf8
    # 追加所有数据行
    Get-ChildItem *.csv | ForEach-Object { Get-Content $_ | Select-Object -Skip 1 } | Out-File master.csv -Append -Encoding utf8
    

方案2:Python标准库实现(兼容所有正规CSV格式,通用可靠)

用Python自带的csv模块即可实现,完全不需要安装第三方依赖,支持处理带字段内嵌换行、转义引号、自定义分隔符的复杂CSV:

import csv
import os

# 按需修改配置参数
csv_dir = "./待合并csv存放目录"  # 替换为你的CSV文件夹路径
output_path = "./master.csv"
csv_encoding = "utf-8"  # 如果你的CSV是GBK编码,修改为"gbk"即可

csv_files = [f for f in os.listdir(csv_dir) if f.lower().endswith(".csv")]
if not csv_files:
    raise ValueError("指定目录下未找到CSV文件")

with open(output_path, "w", newline="", encoding=csv_encoding) as out_f:
    writer = None
    for filename in csv_files:
        file_full_path = os.path.join(csv_dir, filename)
        with open(file_full_path, "r", newline="", encoding=csv_encoding) as in_f:
            reader = csv.reader(in_f)
            # 第一个文件写入表头
            if writer is None:
                headers = next(reader)
                writer = csv.writer(out_f)
                writer.writerow(headers)
            else:
                # 跳过其余文件的表头
                next(reader)
            # 写入当前文件所有数据行
            for row in reader:
                writer.writerow(row)

方案3:零代码工具实现

  • 如果你安装了Excel,可以用Power Query可视化合并:点击「数据」选项卡 → 获取数据 → 从文件 → 从文件夹 → 选中CSV存放目录 → 选择「合并并加载」即可自动完成合并。
  • 如果可以安装轻量工具,csvkit的csvstack命令也可以快速实现:直接运行csvstack *.csv > master.csv即可自动处理表头合并。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 22:27:04