Python2.7-difflib
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python2.7-difflib相关的知识,希望对你有一定的参考价值。
difflib主要用于比较两个序列的不同,常见于字符串的比较,可以对差异生成报告。
模块内定义了三个类:SequenceMatcher、Differ、HtmlDiff
Differ 类初始化有两个可选参数 linejunk 接受一个只有一个字符串参数的函数,代表忽略的字符串,charjunk 接受一个单一字符的函数,代表忽略的字符,类内只有一种方法compare(a,b) ,两个序列必须是单独的用\n分割的字符串,例如从file.readlines()获得。
HtmlDiff 类初始化有四个可选参数,tabsize=8,wrapcolumn=none,linejunk 和 charjunk 同上,类内两个方法 make_file 和 make_table (fromlines, tolines [, fromdesc][, todesc][, context][, numlines]),from/todesc 代表文件头部字符串,一般为空,context 和 numlines 一般默认,红的都不懂。。
SequenceMatcher(isjunk=None, a=‘‘, b=‘‘, autojunk=True) isjunk 可以接受一个单一序列的函数。类内方法 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]):n是返回最大个数,cutoff是阈值,低于它的不匹配,返回最优匹配结果,从大到小排列
restore(sequence, which):将从ndiff 或是Differ.compare() 生成的序列倒推回原序列,which值为1或2,代表第一/二个序列
以上是关于Python2.7-difflib的主要内容,如果未能解决你的问题,请参考以下文章