diff.py un piccolo script in Python che esporta il diff in formato HTML

Ieri mentre stavo leggendo la documentazione di Python per capire come funziona il nuovo sistema di formattazione delle stringhe e cercare di passare un po’ alla volta tutti i miei, piccoli, script alla 3.0 mi sono imbattuto per caso in uno script molto interessante che se ne sta tranquillo in tools/scripts/. Lo script si chiama diff.py e fa quello che ci si aspetta dal nome, analogamente al comando diff con una utile funzione aggiuntiva e cioé l’esportazione del diff in formato HTML.

Leggere un diff in formato HTML fa una grossa differenza, nel senso che è molto più leggibile e consultabile.

Il comando da dare per ottenere il file diff in formato HTML è il seguente:

f.py file1 file2 -m > diff.html

Spiegazione

  • file1 – È il file con le ultime modifiche.
  • file2 – È il vecchio file.
  • -m – È l’opzione che indica allo script di produrre un output in formato HTML.
  • > diff.html – Di default lo script scrive il codice HTML a schermo, per salvarlo in un vero file html serve specificare il dispositivo di output (un file in questo caso).

Una utile opzione che l’altro diff (io uso quello incluso in Cygwin) non ha (anche se ha altre opzioni in più che mancano a questo semplice script, mai usate peraltro). Ovviamente si può usare su tutti sistemi operativi con Python installato (su Linux dovrebbe essere installato di default, credo). Essendo basato su librerie standard non dovrebbe essere difficile “compilarlo” usando py2exe o simili.

Qui metto un esempio dell’output prodotto.

Probabilmente ci sono altri tool che fanno lo stesso lavoro, però visto che è incluso di default come interfaccia alle librerie difflibs di Python tanto vale farne uso.

Riporto di seguito l’help del comando (diff.py --help):

`\ Usage: diff.py [options] fromfile tofile

Options: -h, –help show this help message and exit -c Produce a context format diff (default) -u Produce a unified format diff -m Produce HTML side by side diff (can use -c and -l in conjunction) -n Produce a ndiff format diff -l LINES, –lines=LINES Set number of context lines (default 3)“

0 Responses to “diff.py un piccolo script in Python che esporta il diff in formato HTML”


  • No Comments

Leave a Reply