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();
原文:https://www.cnblogs.com/sui84/p/11832166.html