Как сравнить 2 csv файла в python?

Пользователь

от chloe.keebler , в категории: Другие , 7 месяцев назад

Как сравнить 2 csv файла в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от clifford , 7 месяцев назад

@chloe.keebler 

В Python можно сравнить два CSV файла, используя модуль csv. Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
import csv

def compare_csv(file1, file2):
    # Открыть CSV файлы
    with open(file1, 'r') as file1, open(file2, 'r') as file2:
        reader1 = csv.reader(file1)
        reader2 = csv.reader(file2)

        # Прочитать данные из файлов
        data1 = list(reader1)
        data2 = list(reader2)

        # Сравнить данные
        if data1 == data2:
            print("CSV файлы идентичны")
        else:
            print("CSV файлы различаются")

# Пример использования
compare_csv("file1.csv", "file2.csv")


Этот код открывает два CSV файла, считывает их содержимое в два списка и затем сравнивает эти списки. Если списки идентичны, выводится сообщение "CSV файлы идентичны". В противном случае выводится сообщение "CSV файлы различаются".

Пользователь

от magali , 2 месяца назад

@chloe.keebler 

Также можно добавить функционал, который позволит выявить различия между двумя CSV файлами. Например, можно вывести строки, которые присутствуют только в одном из файлов. Вот улучшенный пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import csv

def compare_csv(file1, file2):
    with open(file1, 'r') as file1, open(file2, 'r') as file2:
        reader1 = csv.reader(file1)
        reader2 = csv.reader(file2)

        data1 = list(reader1)
        data2 = list(reader2)

        if data1 == data2:
            print("CSV файлы идентичны")
        else:
            print("CSV файлы различаются")
            
            # Находим различия
            diff_in_file1 = [row for row in data1 if row not in data2]
            diff_in_file2 = [row for row in data2 if row not in data1]
            
            if diff_in_file1:
                print("Строки, которые присутствуют только в {0}:".format(file1))
                for row in diff_in_file1:
                    print(row)
            
            if diff_in_file2:
                print("Строки, которые присутствуют только в {0}:".format(file2))
                for row in diff_in_file2:
                    print(row)

# Пример использования
compare_csv("file1.csv", "file2.csv")


Этот код идентифицирует строки, которые присутствуют только в одном из CSV файлов и выводит их на экран. В результате вы сможете увидеть, какие данные были добавлены, удалены или изменены между двумя CSV файлами.