Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1416834
  • 博文数量: 264
  • 博客积分: 5810
  • 博客等级: 大校
  • 技术积分: 3528
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-13 17:15
文章分类

全部博文(264)

文章存档

2011年(264)

分类: Python/Ruby

2011-05-30 23:25:10

应用场景:
文件1.内容如下
11111|AAAAA|BBBB
文件2.是在文件1的基础上面不断追加新行即类似于这样的格式
11111|AAAAA|BBBB
11112|AAAAA|BBBB
11113|AAAAA|BBBB
现在要做的是比较这两个文件获取其差异的内容。像上面应当就是
11112|AAAAA|BBBB
11113|AAAAA|BBBB

实现的代码:
  1. import difflib,sys
  2.     from difflib import SequenceMatcher
  3.     file1_context = file("task.txt1","r").read().splitlines(1)
  4.     file2_context = file("task.txt2","r").read().splitlines(1)
  5.     s = SequenceMatcher(None, file1_context, file2_context)
  6.     for tag, i1, i2, j1, j2 in s.get_opcodes():
  7.         print file2_context[i2:j2]


此例打印输出:
['11112|AAAAA|BBBB\n', '11113|AAAAA|BBBB']

如果两个文件一样则输出[]
如果第一个文件比第二个文件要长也输出[]
这两种情况刚好是不需要考虑的~

问题成功解决!
阅读(973) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~