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

对比两个CSV文件并按规则输出差异行至两个文件是否可行?

可行,以下是两种实现方案

方案一:Python 脚本

适合跨平台场景,逻辑清晰易维护:

# 读取CSV文件,返回跳过表头的行集合
def read_csv(file_path):
    with open(file_path, 'r', encoding='utf-8') as f:
        lines = f.read().splitlines()
        return set(lines[1:])  # 跳过第一行表头

# 获取两个文件的行数据
csv1_rows = read_csv('1.csv')
csv2_rows = read_csv('2.csv')

# Output1写入2.csv所有非表头行(包含交集+仅2.csv有的行)
with open('Output1.csv', 'w', encoding='utf-8') as out1:
    out1.write('\n'.join(csv2_rows))

# Output2写入仅1.csv独有的行
with open('Output2.csv', 'w', encoding='utf-8') as out2:
    out2.write('\n'.join(csv1_rows - csv2_rows))

方案二:命令行 awk 工具

适合熟悉终端操作的用户,无需编写脚本:

# 将2.csv的非表头行写入Output1.csv(满足交集+仅2.csv有的行需求)
awk 'NR>1' 2.csv > Output1.csv

# 提取1.csv中不在2.csv里的非表头行,写入Output2.csv
awk 'NR==FNR {if(NR>1) rows[$0]; next} FNR>1 && !($0 in rows)' 2.csv 1.csv > Output2.csv

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 20:41:16