Python中的difflib模块
difflib模块提供的类和方法用来进行序列的差异化比较,它能够比对文件并生成差异结果文本或者html格式的差异化比较页面
1. class difflib.HtmlDiff
此类可以被用来创建HTML表格 (或者说包含表格的html文件) ,两边对应展示或者行对行的展示比对差异结果。
import difflib
file1 = '/etc/passwd'
file2 = '/tmp/passwd'
with open(file1) as f1, open(file2) as f2:
text1 = f1.readlines()
text2 = f2.readlines()
d = difflib.HtmlDiff()
with open("passwd.html", 'w') as f:
f.write(d.make_file(text1, text2))
结果如图
2. class difflib.Differ
此类比较的是文本行的差异并且产生适合人类阅读的差异结果或者增量结果
import difflib
# ['', '1 line', '2 line']
text1 = '''
1. Beautiful is better than ugly.
2. Explicit is better than implicit.
3. Simple is better than complex.
4. Complex is better than complicated.
'''.splitlines(keepends=True)
text2 = '''
1. Beautifu is better than ugly.
2. Explicit is better than implicit.
3. Simple is better than complex.
4. Complex is better than complicated.
'''.splitlines(keepends=True)
# .splitlines(keepends=True) 按照换行符进行分割