У меня есть список путей к файлам. К каждому элементу списка я добавляю две строки A и B, так что абсолютный путь к файлам: file1 = A + listelemet и file2 = B + listelement. Мне нужно проверить, идентичны ли файлы. Если идентичны, игнорируйте. Если не совпадают, выведите номера строк и покажите сравнение этих строк для заданных номеров строк.
Я пробовал что-то вроде этого:
with open(file1, 'r') as filea:
with open(file2, 'r') as fileb:
diff = difflib.unified_diff(filea.readlines(),fileb.readlines(),fromfile=os.path.basename(file1),tofile=os.path.basename(file2))
for line in diff:
sys.stdout.write(line)
, но он не дает консолидированного вывода для каждого номера строки, который отличается в одном или обоих файлах
Предположим, у меня есть текстовый файл с:
a
s
s
s
d
ssasa
и еще одно со следующим:
a
s
d
ere
ewrwer
werewr
Я получаю вывод как:
--- asd.txt
+++ asd1.txt
@@ -1,11 +1,8 @@
a
s
-s
-s
d
+ere
+ewrwer
-
-
-
-ssasa+werewr
Однако мне нужен вывод с напечатанным номером строки, а затем разница в этой строке для каждого файла
Желаемый вывод в консоли:
Comparing files file1 and file2
3: file1:s,file2:d
4: file1:s, file2:ere
5: file1:d
6: file2:ewrwer
8: file2:werewr
11: file1:ssasa