context_diff(a, b, fromfile='', tofile='', fromfiledate='', tofiledate='', n=3, lineterm='\n')
Compare two sequences of lines; generate the delta as a context diff.
Context diffs are a compact way of showing line changes and a few
lines of context. The number of context lines is set by n
which
defaults to three.
By default, the diff control lines (those with *** or ---) are created with a trailing newline. This is helpful so that inputs created from file.readlines() result in diffs that are suitable for file.writelines() since both the inputs and outputs have trailing newlines.
For inputs that do not have trailing newlines, set the lineterm argument to "" so that the output will be uniformly newline free.
The context diff format normally has a header for filenames and
modification times. Any or all of these may be specified using
strings for fromfile
, tofile
, fromfiledate
, and tofiledate
.
The modification times are normally expressed in the format returned
by time.ctime(). If not specified, the strings default to blanks.
Example:
>>> print ''.join(context_diff(one\ntwo\nthree\nfour\n
.splitlines(1),
... zero\none\ntree\nfour\n
.splitlines(1), Original
, Current
,
... Sat Jan 26 23:30:50 1991
, Fri Jun 06 10:22:46 2003
)),
* Original Sat Jan 26 23:30:50 1991
--- Current Fri Jun 06 10:22:46 2003
***********
1,4 ***
one
! two
! three
four
--- 1,4 ----
+ zero
one
! tree
four