difflib -帮助进行差异化比较
这个模块提供的类和方法用来进行差异化比较,它能够生成文本或者html格式的差异化比较结果,如果需要比较目录的不同,可以使用filecmp模块。
classdifflib.SequenceMatcher
这是可以用来比较任何类型片段的类,只要比较的片段是可hash的,都可以用来比较,使用非常灵活。他源于1980,s的“完形匹配算法”,并且进行了一系列的优化和改进。
通过对算法的复杂度比较,它由于原始的完形匹配算法,在最坏情况下有n的平方次运算,在最好情况下,具有线性的效率。
它具有自动垃圾启发式,可以将重复超过片段1%或者重复200次的字符作为垃圾来处理。可以通过将autojunk设置为false关闭该功能。
autojunk 参数新增于2.7.1版本。
classdifflib.Differ
这个类用来比较文本里的行,并且产生可阅读的差异化结果。
它用以下符号来表示不同
Code
Meaning
'- '
仅在片段1中存在
'+ '
仅在片段2中存在
' '
片段1和2中都存在
'? '
存在疑问的
标识为?需要你通过人工的方式仔细比较他们的不同,他们产生的原因是源于混乱的制表符
classdifflib.HtmlDiff
这个类用来创建一个html表格(或者包含html表格的文件)用来展示文件差异。他既可以进行全文本展示,也可以只展示上下文不同。
这个类的构造函