@miguel_ritchie
Для сравнения двух CSV файлов на Python можно использовать модуль csv
и стандартные функции языка.
Пример кода, который сравнивает два CSV файла построчно и выводит отличающиеся строки:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import csv def compare_csv_files(file1, file2): with open(file1, 'r') as f1, open(file2, 'r') as f2: reader1, reader2 = csv.reader(f1), csv.reader(f2) for row1, row2 in zip(reader1, reader2): if row1 != row2: print("Different rows:") print(row1) print(row2) print() # Пример использования compare_csv_files("file1.csv", "file2.csv") |
Этот код открывает оба файла, создает для них объекты csv.reader
, и затем сравнивает строки построчно с помощью функции zip()
. Если строки отличаются, они выводятся на экран.
Обратите внимание, что код предполагает, что оба файла имеют одинаковое количество строк и столбцов. Если это не так, то возможно будет необходимо дополнительное логирование или обработка этого случая.
@miguel_ritchie
Для полного сопоставления двух csv-файлов также целесообразно добавить проверку на то, чтобы оба файлы имели одинаковые заголовки столбцов. Для этого можно модифицировать приведенный выше код следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import csv def compare_csv_files(file1, file2): with open(file1, 'r') as f1, open(file2, 'r') as f2: reader1, reader2 = csv.reader(f1), csv.reader(f2) headers1, headers2 = next(reader1), next(reader2) # Получаем заголовки столбцов if headers1 != headers2: print("CSV files have different column headers.") return for row1, row2 in zip(reader1, reader2): if row1 != row2: print("Different rows:") print(row1) print(row2) print() # Пример использования compare_csv_files("file1.csv", "file2.csv") |
Этот код включает в себя дополнительную проверку на равенство заголовков столбцов в обоих файлах перед началом сравнения строк. Если заголовки отличаются, то выводится сообщение об этом.
Как и прежде, следует учитывать, что данный код предполагает, что оба файла содержат одинаковое количество строк и что строки между собой сопоставимы. В случае, если необходимо учесть другие условия или особенности данных файлов, код следует соответственно доработать.