python---difflib模块

2019-04-13 21:18发布

1.什么是difflib

这个模块提供的类和方法用来进行差异化比较,它能够生成文本或者html格式的差异化比较结果,如果需要比较目录的不同,可以使用filecmp模块。 比较/etc/passwd 和 /tmp/passwd 这两个文件有那里不同 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.difflib里面的案例

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) # 1. 以字符串方式展示两个文本的不同, 效果如下: d = difflib.Differ() result = list(d.compare(text1, text2)) result = " ".join(result) print(result) """ - 1. Beautiful is better than ugly. ? ^ + 1. Beautifu is better than ugly. ? ^ 2. Explicit is better than implicit. 3. Simple is better than complex. 4. Complex is better than complicated. """ # 2. 以html方式展示两个文本的不同, 浏览器打开: d = difflib.HtmlDiff() with open("passwd.html", 'w') as f: f.write(d.make_file(text1, text2)) 这里写图片描述