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的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段6——CSS选择器

VSCode自定义代码片段——声明函数