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

寻找可批量处理CSV、新增空列及固定值列的高效工具

解决方案

方案1:纯csvkit实现(无需额外编码,适合直接套用规则)

你可以组合csvkit的内置命令实现全部需求,不需要额外开发:

  • 第一步:从源CSV提取需要映射的列并调整顺序
    按照你的映射规则,先提取对应列生成中间文件:
    csvcut -c 3,2,18 源文件.csv > 提取列中间文件.csv
    你有其他映射规则的话,直接调整-c后面的列号顺序即可。
  • 第二步:生成包含固定值的辅助列文件
    生成全量填充MS的Title列文件:
    seq $(wc -l < 源文件.csv) | sed '1s/.*/Title\nMS/' | sed '2,$s/.*/MS/' > title列.csv
    生成全为空值的Date Set列文件:
    seq $(wc -l < 源文件.csv) | sed '1s/.*/Date Set\n/' | sed '2,$s/.*//' > 日期列.csv
  • 第三步:按顺序拼接所有列得到最终文件
    csvjoin --no-inference title列.csv 提取列中间文件.csv 日期列.csv | csvcut -c 1,2,3,4,5 > 最终输出文件.csv
  • 要定期执行的话,把上述命令整理为shell脚本(Windows系统写bat脚本),添加到系统定时任务即可。

方案2:轻量Python脚本实现(规则调整更灵活,适合长期使用)

如果映射规则会频繁变动,建议写短脚本实现,维护成本比串命令更低:

import csv

# 配置区,修改规则只需要调整以下参数即可
SOURCE_FILE = "你的源文件路径.csv"
OUTPUT_FILE = "你的输出文件路径.csv"
# 新列对应源列的索引(从0开始计数,固定值/空值列填None)
COLUMN_MAPPING = [None, 2, 1, None, 17]
# 固定值列配置:键为新列索引,值为填充内容
FIXED_VALUE_COLS = {0: "MS"}
# 空值列配置:填入新列的索引即可
EMPTY_COLS = [3]
# 新文件表头,按顺序填写
NEW_HEADERS = ["Title", "列2自定义表头", "列3自定义表头", "Date Set", "列5自定义表头"]

with open(SOURCE_FILE, 'r', encoding='utf-8') as f_in, open(OUTPUT_FILE, 'w', encoding='utf-8', newline='') as f_out:
    reader = csv.reader(f_in)
    writer = csv.writer(f_out)
    # 写入新表头
    writer.writerow(NEW_HEADERS)
    # 跳过源文件表头
    next(reader)
    for row in reader:
        new_row = []
        for col_idx in range(len(NEW_HEADERS)):
            if col_idx in FIXED_VALUE_COLS:
                new_row.append(FIXED_VALUE_COLS[col_idx])
            elif col_idx in EMPTY_COLS:
                new_row.append("")
            else:
                new_row.append(row[COLUMN_MAPPING[col_idx]])
        writer.writerow(new_row)
  • 定期执行直接把脚本添加到系统定时任务(Windows任务计划、Linux crontab均可支持),一次配置即可自动运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:24:04