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

如何用Python将11k个两行CSV文件合并为单行?

解决11k个CSV文件两行合并问题

首先咱们先明确需求:每个CSV文件固定只有两行,第一行是带竖线包裹的标识(比如A0.31),第二行是业务数据(比如some data),要把这两行的有效内容合并成一行,格式为some data | A0.31 |。

核心处理思路

因为每个文件只有固定两行,不需要循环遍历所有行,直接读取这两行内容,提取有效信息后重新组合成目标格式即可,批量处理11k个文件也完全高效。

完整可运行代码

import csv
import os

# 替换成你的CSV文件所在文件夹路径
target_folder = "path/to/your/csv/folder"

# 遍历文件夹内所有CSV文件
for file_name in os.listdir(target_folder):
    if not file_name.endswith(".csv"):
        continue  # 跳过非CSV文件
    
    original_path = os.path.join(target_folder, file_name)
    temp_path = os.path.join(target_folder, f"{file_name}_temp.csv")
    
    with open(original_path, 'r', newline='') as in_file, open(temp_path, 'w', newline='') as out_file:
        # 指定竖线为分隔符,匹配你的文件格式
        reader = csv.reader(in_file, delimiter='|')
        writer = csv.writer(out_file, delimiter='|')
        
        # 读取第一行,提取标识内容(去除前后空格)
        first_line = next(reader)
        label = first_line[0].strip()
        
        # 读取第二行,提取业务数据内容
        second_line = next(reader)
        content = second_line[0].strip()
        
        # 构造目标行:业务数据 | 标识 | 空单元格
        result_line = [content, label, '']
        writer.writerow(result_line)
    
    # 替换原文件(先删原文件,再把临时文件重命名为原文件名)
    os.remove(original_path)
    os.rename(temp_path, original_path)

print("所有CSV文件处理完成!")

代码细节说明

  • 批量处理:通过os.listdir遍历目标文件夹,自动筛选所有CSV文件,一次性处理11k个文件毫无压力
  • 精准提取内容:用strip()去除单元格前后的空格、换行符,确保提取的内容干净无冗余
  • 安全文件替换:先写入临时文件,确认处理完成后再替换原文件,避免中途出错导致原数据丢失
  • 格式匹配:指定delimiter='|'作为CSV的分隔符,完全匹配你给出的文件格式

注意事项

  1. 先做测试:建议先拿1-2个文件测试代码,确认输出符合预期后再批量处理所有文件
  2. 编码适配:如果你的CSV文件用了非默认编码(比如GBK),需要在open时添加encoding参数,例如open(original_path, 'r', newline='', encoding='gbk')
  3. 备份原数据:处理前最好备份所有原始CSV文件,以防意外情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:46:56