Как я могу отформатировать вывод файла Python difflib.HtmlDiff, чтобы сделать его читабельным? - PullRequest
0 голосов
/ 25 мая 2020

Я пытаюсь вывести разницу между двумя текстовыми файлами, используя библиотеку difflib в Python 2, с функцией HtmlDiff для создания файла html.

V1 = 'This has four words'
V2 = 'This has more than four words'

res = difflib.HtmlDiff().make_table(V1, V2)

text_file = open(OUTPUT, "w")
text_file.write(res)
text_file.close()

Однако вывод html в браузере выглядит следующим образом:

enter image description here

Дисплей сравнивает каждый отдельный символ , что делает его совершенно нечитаемым.

Что мне нужно изменить, чтобы сравнение было более удобным для человека? (например, полные предложения с каждой стороны)

Если входные данные определяют «строки», тогда вывод также форматируется с учетом строк, но не отображает различия:

V1 = ['This has four words']
V2 = ['This has more than four words']

res = difflib.HtmlDiff().make_table(V1, V2)

text_file = open(OUTPUT, "w")
text_file.write(res)
text_file.close()

Результат html (если смотреть в браузере):

enter image description here

1 Ответ

0 голосов
/ 26 мая 2020

Чтобы получить разметку, вы можете использовать difflib.SequenceMatcher, как в функции, определенной в этом ответе { ссылка }

, чтобы получить этот код:

что дает:

enter image description here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...