python difflib comparing files

不打扰是莪最后的温柔 提交于 2019-11-27 20:37:36

Just parse output of diff like this (change '- ' to '+ ' if needed):

#!/usr/bin/env python

# difflib_test

import difflib

file1 = open('/home/saad/Code/test/new_tweets', 'r')
file2 = open('/home/saad/PTITVProgs', 'r')

diff = difflib.ndiff(file1.readlines(), file2.readlines())
delta = ''.join(x[2:] for x in diff if x.startswith('- '))
print delta

There are multiple diff styles and different functions exist for them in the difflib library. unified_diff, ndiff and context_diff.

If you don't want the line number summaries, ndiff function gives a Differ-style delta:

import difflib

f1 = '''1
2
3
4
5'''
f2 = '''1
3
4
5
6'''

diff = difflib.ndiff(f1,f2)

for l in diff:
    print(l)

Output:

  1
- 2          
  3          
  4          
  5   
+ 6

EDIT:

You could also parse the diff to extract only the changes if that's what you want:

>>>changes = [l for l in diff if l.startswith('+ ') or l.startswith('- ')]

>>>for c in changes:
       print(c)
>>>
- 2
+ 6
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!