17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

296<br />

La bibliothèque standard<br />

difflib<br />

TROISIÈME PARTIE<br />

Le module difflib fournit un certain nombre d’utilitaires pour comparer deux<br />

textes. Les fonctionnalités sont équivalentes à ce que des outils de versioning comme<br />

CVS ou SVN peuvent fournir.<br />

difflib offre des fonctions pour :<br />

afficher les différences entre deux textes ;<br />

restaurer un texte avec les différences.<br />

Affichage des différences<br />

Les fonctions context_diff() et unified_diff() calculent les différences entre les<br />

deux textes passés en paramètres sous forme de listes de lignes, et renvoient un<br />

generator qui contient le texte des différences.<br />

Pour chaque sous-partie de texte qui contient une différence, context_diff() renvoie<br />

un bloc préfixé des numéros des lignes concernées dans le texte, avec la version 1<br />

suivie de la version 2.<br />

unified_diff() quant à elle regroupe les différences dans un même texte.<br />

Comparaison de textes<br />

>>> text_1 = """<br />

... Lorsque les mouette volent à basse altitude,<br />

... Il faut se méfier du temps qu'il fera demain.<br />

...<br />

... Car l'adage dit:<br />

... "Mouette basse, orage haut"<br />

... """<br />

>>> text_2 = """<br />

... Lorsque les mouettes volent à basse altitude,<br />

... Il faut se méfier du temps qu'il fera le lendemain.<br />

...<br />

... Car l'adage dit:<br />

... "Mouette basse, orage haut"<br />

... (Auteur: ???)<br />

... 5/20<br />

... """<br />

>>> text_1 = text_1.splitlines(1)<br />

>>> text_2 = text_2.splitlines(1)<br />

>>> res = difflib.context_diff(text_1, text_2)<br />

>>> print(''.join(list(res)))<br />

***<br />

---<br />

***************<br />

*** 1,6 ****

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!