Pythoner
Фотография
✈️ В Python модуль `difflib` — это мощный инструмент для сравнения последовательностей, таких как строки, списки и другие итерируемые объекты. Он предоставляет классы и функции для вычисления различий между последовательностями, что позволяет эффективно находить и отображать изменения, например, в текстовых файлах или других данных.
➡️ Применение difflib разнообразно: от сравнения версий файлов и поиска плагиата до создания патчей и слияния изменений в системах контроля версий. Он также может быть полезен для анализа текстовых данных, например, для выявления изменений в документах или сравнения ответов пользователей.
➡️ Вот пример использования difflib для сравнения двух строк:
import difflib
text1 = """
This is the first line.
This is the second line.
This is the third line.
"""
text2 = """
This is the first line.
This is the modified second line.
This is the fourth line.
"""
diff = difflib.ndiff(text1.splitlines(), text2.splitlines())
print("\n".join(diff))
# Вывод:
# This is the first line.
# - This is the second line.
# + This is the modified second line.
# ? +++++++++
#
# - This is the third line.
# ? ---
#
# + This is the fourth line.
# ? ++++
# ^
# Более наглядное сравнение:
diff = difflib.unified_diff(text1.splitlines(), text2.splitlines(), fromfile='file1.txt', tofile='file2.txt')
print("\n".join(diff))
# Вывод:
# --- file1.txt
# +++ file2.txt
# @@ -1,4 +1,4 @@
#
# This is the first line.
# -This is the second line.
# +This is the modified second line.
# -This is the third line.
# +This is the fourth line.
# Сравнение HTML:
from difflib import HtmlDiff
html_diff = HtmlDiff()
table = html_diff.make_table(text1.splitlines(), text2.splitlines(), fromdesc='file1.txt', todesc='file2.txt')
with open('diff.html', 'w') as f:
f.write(table) # Сохранение результата в HTML файл
⬆️ В этом примере демонстрируется использование функций ndiff и unified_diff для сравнения двух строк построчно. ndiff показывает различия с помощью специальных символов: - для удаленных строк, + для добавленных и ? для изменений внутри строки. unified_diff предоставляет более компактный вывод, похожий на формат патчей. Также показан пример использования HtmlDiff для создания HTML-таблицы с различиями, что удобно для визуального сравнения.
🐍 Pythoner
26 · 1.8K ·