Python2.7-difflib

difflib主要用于比较两个序列的不一样,常见于字符串的比较,能够对差别生成报告。SequenceMatcher 主要用于找二者类似部分,以及二者不一样的转换方法,而 Differ 更注重于比较二者的区别并标记,HtmlDiff 注重把二者的区别以 HTML 的形式表现出来html

模块内定义了三个类:SequenceMatcher、Differ、HtmlDiffpython

一、Differ([linejunk[, charjunk]]):类初始化有两个可选参数 linejunk 接受一个只有一个字符串参数的函数,表明忽略的字符串,charjunk 接受一个单一字符的函数,表明忽略的字符缓存

类内方法:函数

compare(a,b) :两个序列必须是单独的用 \n 分割的字符串,例如从 file.readlines() 得到。ui

 

二、HtmlDiff (tabsize=8, wrapcolumn=None, linejunk=None, charjunk=IS_CHARACTER_JUNK):类初始化有四个可选参数,tabsize=8,wrapcolumn=none,linejunk 和 charjunk 同上spa

类内方法:rest

make_file 和 make_table (fromlines, tolines [, fromdesc][, todesc][, context][, numlines]):对 fromlines 至 tolines 之间的文本进行比较,分别返回完整的 HTML 文件和表,from/todesc 表明文件头部字符串,通常为空,context 和 numlines 通常默认,红的都不懂。。code

 

三、SequenceMatcher(isjunk=None, a='', b='', autojunk=True) :isjunk 能够为 none 或是接受一个单一序列的函数,该函数只会在元素符合垃圾时返回真。htm

类内方法:对象

set_seqs(a,b),set_seq1(a),set_seq2(b):类会对第二个序列对象进行计算并缓存详细信息,因此在对一个序列进行屡次比较时,能够将其设置为第二个参数

find_longest_match(alo,ahi,blo,bhi):从 a[alo:ahi] 和 b[blo:bhi] 中找到最长的匹配

get_matching_blocks():返回三个元素的列表,包含第一个和最后一个的匹配,第三个元素是a,b的长度

get_opcodes():得到从a转变至b的方法,有4种方法('replace' , 'delete', 'equal', 'insert')

get_grouped_opcodes([n]):得到转变n行方法的生成器

ratio():a与b的类似度,若是没有运行过get_matching_blocks()或者get_opcodes(),这个方法很耗时间,可用如下两个方法代替

quick_ratio():快速的计算

real_quick_ratio():最快的计算,不许

模块内方法:

context_diff(a, b[, fromfile][, tofile][, fromfiledate][, tofiledate][, n][, lineterm]):比较 a 和 b,返回一个 context diff 格式的生成器,将两个文件彻底分开输出(每一个文件的文件名在内容上方),在每行前面加上对应标记

ndiff(a, b[, linejunk][, charjunk]):比较 a 和 b,返回一个 Differ 格式的生成器,将二者差别逐行对比输出

unified_diff(a, b[, fromfile][, tofile][, fromfiledate][, tofiledate][, n][, lineterm]):比较 a 和 b ,返回一个 unified_diff 格式的生成器,将两个文件部分分开输出(两个文件名在全部内容以前,文件内容以文件前后排列输出),在每行前面加上对应标记

get_close_matches(word, possibilities[, n][, cutoff]):从 possibilities 里挑选出最匹配 word 的元素,n 是返回最大个数,cutoff 是匹配阈值,低于它的不匹配,返回最优匹配结果,从大到小排列

restore(sequence, which):将从ndiff 或是Differ.compare() 生成的序列倒推回原序列,which值为1或2,表明第一/二个序列

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息