码迷,mamicode.com
首页 > 编程语言 > 详细

Python2.7-difflib

时间:2017-10-03 23:33:07      阅读:533      评论:0      收藏:0      [点我收藏+]

标签:获得   apc   模块   auto   store   blocks   匹配   line   omd   

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

标签:获得   apc   模块   auto   store   blocks   匹配   line   omd   

原文地址:http://www.cnblogs.com/tccbj/p/7624663.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!