Python: сравните файлы CSV и сохраните разницу с первой строкой (имена столбцов)

У меня есть два файла CSV, как показано ниже:

Файл 1: June_01_2018.csv

введите здесь описание изображения

Файл 2: June_02_2018.csv

введите здесь описание изображения

Примечание. Я хочу найти разницу между этими двумя файлами и сохранить ее в третьем файле с заголовками столбцов.

Моя попытка:

with open('June_01_2018.csv', 'r') as f1:
    file1 = f1.readlines()

with open('June_02_2018.csv', 'r') as f2:
    file2 = f2.readlines()

with open('June_Updates.csv', 'w') as outFile:
    for line in file2:
        if line not in file1:
            outFile.write(line)

Но не удалось сохранить заголовки столбцов в третий файл.


person MAK    schedule 04.06.2018    source источник


Ответы (1)


попробуй это:

    with open('June_01_2018.csv', 'r') as f1:
        file1 = f1.readlines()

    with open('June_02_2018.csv', 'r') as f2:
        file2 = f2.readlines()

    with open('June_Updates.csv', 'w') as outFile:
        outFile.write(file1[0])
        for line in file2:
            if line not in file1:
                outFile.write(line)
person Dataichou    schedule 04.06.2018
comment
Подходит ли тот же подход для огромных данных (около 100 миллионов) с точки зрения производительности? - person MAK; 04.06.2018
comment
@MAK попробуйте этот подход, если у вас есть большие данные: stackoverflow. ком/вопросы/9932278/ - person NanoPish; 04.06.2018
comment
У вас может закончиться память. Другой подход заключается в загрузке набора данных в реляционную базу данных и использовании SQL для запроса того же самого. Это зависит от того, как часто меняется набор данных и как часто вам нужно генерировать outFile. - person Dataichou; 04.06.2018