class difflib.HtmlDiff www.a8f.net
这个类用来创建一个html表格(或者包含html表格的文件)用来展示文件差异。他既可以进行全文本展示,也可以只展示上下文不同。
这个类的构造函数如下:
__init__(tabsize=8, wrapcolumn=None, linejunk=None, charjunk=IS_CHARACTER_JUNK)
tabsize表示制表符代表的空格个数,游戏 默认为8
wrapcolumn,可选参数,用来设置多少个字符时自动换行,默认None,为None时表示不自动换行
linejunk 和 charjunk,可选参数,在ndiff()中使用,
这个类的公共方法:
make_file(fromlines, tolines [, fromdesc][, todesc][, context][, numlines])
用来生成一个包含表格的html文件,其内容是用来展示差异。
fromlines 和tolines,用于比较的内容,格式为字符串组成的列表
fromdesc 和 todesc,可选参数,对应的fromlines,tolines的差异化文件的标题,默认为空字符串
context 和 numlines,可选参数,context 为True时,只显示差异的上下文,为false,显示全文,numlines默认为5,当context为True时,控制展示上下文的行数,当context为false时,控制不同差异的高亮之间移动时“next”的开始位置(如果设置为0,当移动懂顶端时,超链接会丢失引用地址)
make_table(fromlines, tolines [, fromdesc][, todesc][, context][, numlines])
这个方法和make_file用法一样,唯一的区别在于它只生成了一个html表格字符串
python安装包的Tools/scripts/diff.py是关于他们使用的一个很好的例子,它可以用命令行来运行。
新增于python2.4
difflib.context_diff(a, b[, fromfile][, tofile][, fromfiledate][, tofiledate][, n][, lineterm])
用来比较a,b,a,b都是字符串列表。返回一个格式化文本的差异。
他是一个用来展示少量差异的好方法,这种变化,用前/后的样式进行展示,n默认为3,用来控制展示发现的差异数
默认情况下,差异控制行(*** or ---)用来把a,b的差异区隔开来,便于程序读写处理,如果不需要这样做的话,可以设置lineterm为"",这样,就会卸载一行里
如果格式化差异文本需要标题和修改时间信息,通过fromfile, tofile, fromfiledate, 和 tofiledate进行控制,如果不设置,默认为空