@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-хеш файла, а затем сравнивает хеши файлов. Если хеши совпадают, файлы идентичны. Хеширование файлов - это более эффективный способ сравнения файлов, особенно при работе с большими файлами.
Выбор метода зависит от ваших конкретных потребностей и размера файлов, которые вы собираетесь сравнивать.