我遇到了与这里提到的问题类似的问题:
我想合并文件,使用两个文件的第一个字段作为合并键。
不同之处在于,在两个文件中的一个中,列数可能因记录而异(它包含一个跟踪路由,每列一个 ip,因此长度可能会发生变化。)
(连接键是 IP 地址,即两个文件中的第一列。)
答案1
不知道我是否正确理解了你的问题。我想使用 python 中出色的 csv 模块来执行此操作。
例子:
提交
a,x
b,y
c,z
文件b
l,m
n,p
k,m
代码-join.py
import csv
source1= csv.reader( open("a","rb") )
source2= csv.reader( open("b","rb") )
dest= csv.writer( open("c","wb") )
for row in source1:
result=row[1]
dest.writerow(result)
for row in source2:
result=row[1]
dest.writerow(result)
答案2
我建议使用 SQLite 来执行此操作。安装 SQLite 非常简单,不需要 root 权限,适用于所有平台。
脚步:
- 将两个 CSV 文件导入 SQLite DB。
- 使用 SQL 进行连接。
- 将输出保存为 CSV 文件。
sqlite3
。分隔器 ”,”
创建表 test1(col1 文本,col2 文本);
.导入测试1.csv 测试1
创建表 test2(col1 文本,col2 文本);
.导入测试3.csv 测试1
.模式 csv
.输出文件.csv
从 test1 a 加入 test2 b 中选择 a.col1、a.col2、b.col2,a.col1=b.col1;
.输出标准输出
答案3
我确实会为此使用数据库。您可以尝试使用 MS Access 或 OpenOffice Base。您可能需要暂时使用电子表格(例如 Excel)来帮助导入 CSV 文件。