查找两个CSV文件的差异
我有两个csv文件,分别叫做 x.csv
和 y.csv
。x.csv
里只有一行数据,内容是 列A:0, 列B:1, 列C:2, 列D:3
。而 y.csv
里也只有一行,内容是 列A:2, 列B:3, 列C:4
。我想用Python找出这两个csv文件之间的差异,并把结果输出到第三个csv文件里。
到目前为止,我尝试过 with open('x.csv','rb') as f1, open('y.csv','rb') as f2
这样的代码。
1 个回答
0
根据我对这个问题的理解,这个方法是用来比较两个文件,并生成一个第三个csv文件,里面记录每个单元格的不同之处。就我个人而言,我觉得这个方法不是特别优雅,可能在很多情况下会出现问题,但至少可以让你入门。这部分内容是参考了评论中提到的问答。
import csv
def csv_get(csvfile):
with open(csvfile) as f:
for row in csv.reader(f):
for i in row:
yield i
def csv_cmp(csvfile1, csvfile2, output):
row = []
read_file_2 = csv_get(csvfile2)
for value_1 in csv_get(csvfile1):
value_2 = read_file_2.next()
print("File 1: {} File 2: {}").format(value_1, value_2)
difference = int(value_1) - int(value_2)
row.append(difference)
with open(output, "w") as output_file:
csv.writer(output_file).writerow(row)
read_file_2.close()
csv_cmp(csvfile1="C:\\...\\a.csv",
csvfile2="C:\\...\\b.csv",
output="C:\\...\\c.csv")