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

加载多CSV文件时如何校验表头一致性,不一致时抛出异常

批量CSV合并(表头一致性校验)实现方案

核心逻辑

  • 以目录内第一个CSV文件的表头作为校验基准
  • 遍历所有CSV文件时优先校验表头,和基准不匹配直接抛出异常终止流程
  • 所有文件表头校验通过后,合并全部数据并输出为单个CSV文件

完整实现代码

# 导入依赖库
import pandas as pd
import os
import glob

# 配置路径和输出文件名
path = os.getcwd() # 可替换为你的CSV存放目录绝对路径
output_file = "merged_output.csv"

# 获取目录下所有CSV文件
csv_files = glob.glob(os.path.join(path, "*.csv"))

# 无CSV文件时提前抛出异常
if not csv_files:
    raise FileNotFoundError(f"目录{path}下未找到任何CSV文件")

df_list = []
base_header = None

for f in csv_files:
    # 读取CSV文件
    df = pd.read_csv(f)
    # 打印文件信息
    print('Location:', f)
    print('File Name:', os.path.basename(f))
    # 打印内容(Jupyter环境可替换为display(df))
    print('Content:')
    print(df)
    print()

    # 表头校验逻辑
    if base_header is None:
        # 取第一个文件的表头作为基准
        base_header = df.columns.tolist()
    else:
        current_header = df.columns.tolist()
        if current_header != base_header:
            raise ValueError(f"CSV文件表头不一致,异常文件:{os.path.basename(f)},基准表头:{base_header},当前文件表头:{current_header}")
    
    df_list.append(df)

# 合并所有数据并输出
merged_df = pd.concat(df_list, ignore_index=True)
merged_df.to_csv(os.path.join(path, output_file), index=False, encoding='utf-8-sig')
print(f"所有CSV文件已合并完成,输出文件路径:{os.path.join(path, output_file)}")

效果说明

当你指定的目录下出现表头不匹配的CSV文件时,代码会立即抛出包含异常文件名、表头差异信息的ValueError,终止合并流程,符合描述的预期场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 16:30:03