En comparant les exemples d'utilisation difflib.ndiff()
difflib - empêcher le remplacement de la ligne entière
from difflib import unified_diff, ndiff
print("".join(ndiff(
["aba\n"],
["abbba\n"]
)))
print("".join(ndiff(
["aba\n"],
["abbbba\n"]
)))
sortie suivante:
- aba
+ abbba
? ++
- aba
+ abbbba
premiers points où les caractères doivent être ajoutés tandis que le second essentiellement abandonné et remplacé toute la ligne.
Comment puis-je faire la seconde impression sur l'équivalent de
« Vous devez insérer 3 « 'b [ici]. »?
Sortie prévue pour la deuxième impression:
- aba
+ abbbba
? +++
Merci beaucoup de m'avoir indiqué '_fancy_replace' et j'aime particulièrement l'idée de truquer la ration en ajoutant de l'espace et en les retirant à nouveau. (J'allais juste écraser le '0.75' directement mais cela pourrait devenir problématique avec des chaînes plus longues) –
Ok l'idée de l'espace est de beaucoup de tracas avec plusieurs lignes Je vais juste créer une copie locale de difflib.py –
Je l'ai fait fonctionner. Le difflib coloré fait enfin ce qu'il devrait faire. Voir ici si intéressé: https://github.com/Farbdose/ColoredDifflib –