objectif
Comparer deux textes et produire un patch lisible.
code minimal
import difflib
a = "ligne1\nligne2\n"
b = "ligne1\nLIGNE2\n"
diff = "".join(difflib.unified_diff(a.splitlines(True), b.splitlines(True), fromfile="a.txt", tofile="b.txt"))
print(diff.startswith("--- a.txt")) # attendu: True
utilisation
import difflib
s = difflib.ndiff("abc", "axc")
print(isinstance(s, type(iter([]))))
variante(s) utile(s)
import difflib
ratio = difflib.SequenceMatcher(a="abcd", b="abXcd").ratio()
print(ratio < 1.0)
notes
- unified_diff est idéal pour des revues et patches.
- SequenceMatcher calcule une similarité entre 0 et 1.