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

Python批量提取文件夹内所有CSV第二行含表头保存为新CSV

需求说明
  • 指定文件夹下共8000个CSV文件,所有文件第一行表头完全一致
  • 需提取每个CSV文件的第二行整行数据,保留统一表头后汇总写入新CSV文件,新文件存储在原文件夹下
  • 原有参考代码存在多处语法、逻辑错误,无法完成上述需求
原有代码问题梳理
  • 语法错误:函数定义行def load_data(filename)末尾缺失冒号;next()调用未传入迭代器对象,运行会直接报错
  • 拼写错误:csv.reder正确写法为csv.reader,参数delimeter正确写法为delimiter
  • 参数配置错误:常规CSV默认分隔符为逗号,原代码误将分隔符设置为下划线_,无法正常解析CSV内容
  • 逻辑错误:原代码会遍历单个文件的所有行、仅提取每行的第二个元素,不符合“仅取每个文件第二行整行”的要求
  • 功能缺失:原代码未实现文件夹遍历、批量读取文件、结果写入新文件的逻辑,直接传入文件夹路径无法读取文件内容
可用实现代码
import os
import csv

# 替换为你的CSV文件夹实际路径
folder_path = r"替换为你的CSV文件夹路径"
# 汇总后输出的文件名
output_filename = "merged_second_rows.csv"
output_path = os.path.join(folder_path, output_filename)

# 存储所有待提取的行
all_rows = []
header = None

# 遍历文件夹下所有文件
for filename in os.listdir(folder_path):
    # 仅处理.csv后缀文件,跳过生成的汇总文件本身
    if filename.lower().endswith(".csv") and filename != output_filename:
        file_path = os.path.join(folder_path, filename)
        with open(file_path, "r", encoding="utf-8-sig", newline="") as f:
            reader = csv.reader(f)
            # 读取表头,仅在第一个文件时保存
            if header is None:
                header = next(reader)
            else:
                # 非第一个文件直接跳过表头
                next(reader)
            # 读取第二行(数据第一行),存在则加入结果集
            try:
                second_row = next(reader)
                all_rows.append(second_row)
            except StopIteration:
                # 跳过只有表头没有数据的空文件
                print(f"警告:文件{filename}无有效数据行,已跳过")

# 写入汇总结果
with open(output_path, "w", encoding="utf-8-sig", newline="") as f:
    writer = csv.writer(f)
    # 先写表头
    writer.writerow(header)
    # 写入所有提取到的行
    writer.writerows(all_rows)

print(f"汇总完成,结果已保存至:{output_path}")
使用说明
  • 运行前将代码中folder_path变量的值替换为你存放CSV文件的文件夹实际路径
  • 代码默认使用utf-8-sig编码读写,可兼容Excel直接打开中文内容,如果你的CSV文件为GBK等其他编码,可自行修改代码中encoding参数值
  • 代码会自动跳过最终生成的汇总文件,避免出现循环读取的问题
  • 针对只有表头、没有数据行的异常CSV文件,代码会打印提示并自动跳过,不会中断运行

内容的提问来源于stack exchange,提问作者ankur .k

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 22:54:25