比较两个CSV的方法的探索

1.开始时,我用ultraEdit来简单比较,需要排序,而且比较的结果也有限

2.而后,发现dbeaver这个tools,利用JDBC Driver(csvjdbc-1.0.35.jar)支持对CSV查询

但原来不支持将两个CSV文件用join的方法来比较,白忙活一场

3.那么我又想起了万能的pathron,利用pandas就可以在命令行比较csv啦。

可行倒是可行,可是不直观。。。还是不爽

import pandas as pd

f1 = pd.read_csv('C:\\user\\file1.csv)
f2 = pd.read_csv('C:\\user\\file2.csv')

f3 = pd.concat([f2, f1[~f1.column1.isin(f2.column1)]])
print(f3)

 

4.想起了linqpad这个工具,当时还觉得有点鸡肋,现在回顾起来,可以直接读取XML文件进行转换,也可以用linq的格式读CSV文件

真是远在天边,近在眼前,简直是利器

String filename = @"d:\temp\test2.csv";
string[] csvlines = File.ReadAllLines(filename);
var q1 = from csvline in csvlines.Skip(1)
		  let data = csvline.Split(',')
		  select data;
var filename2 = @"d:\temp\test3.csv";
string[] csvlines2 = File.ReadAllLines(filename2);
var q2 = from csvline in csvlines2.Skip(1)
		  let data = csvline.Split(',')
		  select data;
var q = from a in q1
		join b in q2 on a[1] equals b[1]
		where a[2] != b[2]
		select new {
		col1 = a[0],
		col2 = a[1],
		col3 = a[2],
		col34= b[2]
		};
q.Dump();		

 

 

猜你喜欢

转载自www.cnblogs.com/sui84/p/11832166.html