Python Glossary English

все Python 3difflibпонятие

difflib.Differ

форматы различий

Класс, выдающий построчные различия в формате ndiff; метод compare(a, b) возвращает генератор строк.

Синтаксис

difflib.Differ(linejunk=None, charjunk=None).compare(a, b)

ndiff() — это и есть Differ, только с другим умолчанием: ndiff подставляет charjunk=IS_CHARACTER_JUNK, а Differ() по умолчанию ничего мусором не считает. Если строки без '\n' (например из splitlines()), служебные строки '? ' всё равно оканчиваются '\n', и при склейке через ''.join() вывод перемешается.

Примеры

import difflib
d = difflib.Differ()
print(list(d.compare(['a\n', 'b\n'], ['a\n', 'c\n'])))  # → ['  a\n', '- b\n', '+ c\n']
import difflib
out = list(difflib.Differ().compare(['a = 1', 'b = 2'], ['a = 1', 'b = 3']))
print(out[1:3])  # → ['- b = 2', '?     ^\n']

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности