2013-08-19 61 views
0

我有ascii纯文本文件1(旧文件)和ascii纯文本文件2(对文件1进行了一些更改的新文件)。Python如何检索新的附加内容,更改内容和删除的内容的更改列表

反正在python脚本可以列出按类别附加文本删除内容差异增加,而当文件1之间进行比较和文件2.

+0

所以,你要 '差异' 两个文件?看看这个SO问题:http://stackoverflow.com/questions/5897983/diff-algorithm-implementation-in-python –

回答

1

我认为你需要使用difflib.Differ做改变的内容: http://docs.python.org/2/library/difflib.html

如果你谷歌“difflib.Differ示例”,你会发现很多的例子,这将有助于你。

编辑: 这里是一个例子

text1 = """Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Integer 
eu lacus accumsan arcu fermentum euismod. Donec pulvinar porttitor 
tellus. Aliquam venenatis. Donec facilisis pharetra tortor. In nec""" 
text1_lines = text1.splitlines() 

text2 = """Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Integer 
eu lacus accumsan arcu fermentum euismod. Donec pulvinar, porttitor 
tellus. Aliquam venenatis. Donec facilisis pharetra tortor. In nec""" 
text2_lines = text2.splitlines() 

import difflib 

d = difflib.Differ() 
diff = d.compare(text1_lines, text2_lines) 
print '\n'.join(diff) 

结果:

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Integer 
- eu lacus accumsan arcu fermentum euismod. Donec pulvinar porttitor 
+ eu lacus accumsan arcu fermentum euismod. Donec pulvinar, porttitor 
?               + 

- tellus. Aliquam venenatis. Donec facilisis pharetra tortor. In nec 
?                - 

+ tellus. Aliquam venenatis. Donec facilisis pharetra tortor. In nec 
+0

差异库不显示告诉我是否有更改内容或额外的内容或删除的内容,它只列出为+或 - 以显示差异,让我知道如果有任何? – user2671444

+0

我们可以使用diff html,只显示差异吗?这篇文章很难看 – user2671444