sqlite3

sqlite3

我遇到了与这里提到的问题类似的问题:

如何合并两个 CSV 文件?

我想合并文件,使用两个文件的第一个字段作为合并键。

不同之处在于,在两个文件中的一个中,列数可能因记录而异(它包含一个跟踪路由,每列一个 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 权限,适用于所有平台。

脚步:

  1. 将两个 CSV 文件导入 SQLite DB。
  2. 使用 SQL 进行连接。
  3. 将输出保存为 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 文件。

相关内容