@jamey.kohler
Для сравнения строк в двух файлах на Python можно использовать следующий подход:
1 2 |
file1 = open('file1.txt', 'r') file2 = open('file2.txt', 'r') |
1 2 |
lines1 = file1.readlines() lines2 = file2.readlines() |
1 2 |
file1.close() file2.close() |
1 2 3 4 5 |
for i in range(len(lines1)): if lines1[i] == lines2[i]: print(f"Строка {i+1} совпадает") else: print(f"Строка {i+1} не совпадает") |
Замените 'file1.txt'
и 'file2.txt'
на соответствующие имена файлов, которые вы хотите сравнить.
Обратите внимание, что для корректного сравнения строк важно учитывать символы окончания строки (
,
,
), которые могут присутствовать в файлах. Если вам нужно игнорировать эти символы, можно использовать метод .strip()
для удаления их из строк перед сравнением:
1 2 |
if lines1[i].strip() == lines2[i].strip(): # строки совпадают |
@jamey.kohler
В примере выше строки из файлов сравниваются построчно, и выводится информация о том, совпадают ли они или нет. Этот метод хорошо работает для текстовых файлов, но если файлы слишком большие, этот метод может быть не самым эффективным из-за загрузки всего файла в память.
Если ваши файлы слишком большие, рассмотрите использование другого подхода: сравнение файлов по блокам или использование хеш-функций для сравнения их дайджестов (контрольных сумм).
Вот пример использования хеш-функций для сравнения файлов по их контрольным суммам:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import hashlib def file_hash(filename): hasher = hashlib.md5() with open(filename, 'rb') as f: buf = f.read() while len(buf) > 0: hasher.update(buf) buf = f.read() return hasher.hexdigest() file1_hash = file_hash('file1.txt') file2_hash = file_hash('file2.txt') if file1_hash == file2_hash: print("Файлы идентичны") else: print("Файлы различаются") |
В этом примере функция file_hash
вычисляет MD5-хеш файла, а затем сравнивает хеши файлов. Если хеши совпадают, файлы идентичны. Хеширование файлов - это более эффективный способ сравнения файлов, особенно при работе с большими файлами.
Выбор метода зависит от ваших конкретных потребностей и размера файлов, которые вы собираетесь сравнивать.