@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")
|
Этот код включает в себя дополнительную проверку на равенство заголовков столбцов в обоих файлах перед началом сравнения строк. Если заголовки отличаются, то выводится сообщение об этом.
Как и прежде, следует учитывать, что данный код предполагает, что оба файла содержат одинаковое количество строк и что строки между собой сопоставимы. В случае, если необходимо учесть другие условия или особенности данных файлов, код следует соответственно доработать.