Я пытаюсь сравнить файлы CSV с основным CSV-файлом и приложить к нему главный файл с любыми изменениями. Когда я запускаю программу, я получаю неожиданные результаты.Python ndiff неверный результат
Python код:
import glob
import difflib
final = "Z:\\_data\\master.csv"
folder = "Z:\\_data\\"
for file in glob.glob(folder + "*sample*.csv"):
#print file
diff = difflib.ndiff(open(final).readlines(),open(file).readlines())
delta1 = ''.join(x[2:] for x in diff if x.startswith('+ '))
#print delta1
if delta1 != "":
with open(final, 'ab') as new_file:
new_file.write("\n" + delta1)
sample1.csv
id,tech,type,work_date
C-40,,,
C-33,,,
C-32,,,
sample2.csv
id,tech,type,work_date
W-37,ty,Waterous,8-12-15
W-38,ty,Dresser,8-12-15
W-5,ty,Waterous,9-1-15
C-44,tf,Waterous,xx
P-40,,,
master.csv
id,tech,type,work_date
Когда я запустить программу в первый раз, мастер-файл выглядит следующим образом:
id,tech,type,work_date
id,tech,type,work_date
C-40,,,
C-33,,,
C-32,,,
W-37,ty,Waterous,8-12-15
W-38,ty,Dresser,8-12-15
W-5,ty,Waterous,9-1-15
C-44,tf,Waterous,xx
P-40,,,
Когда я запускаю программу несколько раз я получаю следующее:
id,tech,type,work_date
id,tech,type,work_date
C-40,,,
C-33,,,
C-32,,,
W-37,ty,Waterous,8-12-15
W-38,ty,Dresser,8-12-15
W-5,ty,Waterous,9-1-15
C-44,tf,Waterous,xx
P-40,,,
C-32,,,
P-40,,,
Как вы можете видеть выше результат имеет повторяющиеся строки.
Я ожидал, что результат будет
id,tech,type,work_date
C-40,,,
C-33,,,
C-32,,,
W-37,ty,Waterous,8-12-15
W-38,ty,Dresser,8-12-15
W-5,ty,Waterous,9-1-15
C-44,tf,Waterous,xx
P-40,,,
И что вы ожидали ...? –