У меня есть 2 CSV файла, которые имеют 3 столбца с именем num, date и tex.
File1
num date tex
20170512 12/05/2017 15:39 1001
20170512 12/05/2017 15:39 1001
20170908 08/09/2017 02:42 1001
20170908 08/09/2017 06:30 1001
Файл 2
num date tex
201705332212 12/05/2017 15:39 1001
20170523212 12/05/2017 15:39 100156
2017232320908 08/09/2017 02:42 10012
20170908 08/09/2017 06:30 1001
желаемый выход
diff.csv
num date tex
201705332212 12/05/2017 15:39 1001
20170523212 12/05/2017 15:39 100156
2017232320908 08/09/2017 02:42 10012
Я хочу сопоставить оба столбца "num" и "tex". в настоящее время нижеприведенный код просто проверяет разницу во всем файле, а не на столбец "num" и "tex". В идеале, я хочу, чтобы оба столбца "num" и "tex были разными", я хотел бы, чтобы он записывал его в файл out.csv.
Используйте модуль csv
.
Пример:
import csv
with open("file1.csv","rU") as file_0, open("file2.csv","rU") as file_1, open("out.csv", "w") as out_file:
file_0 = csv.reader(file_0, delimiter=";")
file_1 = csv.reader(file_1, delimiter=";")
next(file_0) #Skip Header
out_file_writer = csv.writer(out_file, delimiter=";")
out_file_writer.writerow(next(file_1)) #Writer Header
for k, v in zip(file_0, file_1):
if (k[0] != v[0]) or (k[-1] != v[-1]):
out_file_writer.writerow(v) #Writer Diff
(k[0] != v[0])
==>num
&(k[-1] != v[-1])
==>tex
... Вы можете проверить, напечатав k [0], v [0] и k [-1], v [-1]open("out.csv", "wb") as out_file: