本文共 1565 字,大约阅读时间需要 5 分钟。
1. 什么是difflib? 用来做什么? difflib为python的标准库模块,无需安装。 作用是对比文本之间的差异。 并且支持输出可读性比较强的HTML文档,与Linux下的diff命令相似。 在版本控制方面非常有用。
2. 符号理解 符号 含义 '-' 包含在第一个系列行中,但不包含第二个。 '+' 包含在第二个系列行中,但不包含第一个。 ' ' 两个系列行一致 '?' 存在增量差异 '^' 存在差异字符
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. '''text2 = ''' 1. Beautiful is better than ugly. 3. Simple is better than complex. 4. Complicated is better than complex. 5. Flat is better than nested. '''"""import difflibtext1 = ''' 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. Beautiful is better than ugly. 3. Simple is better than complex. 4. Complicated is better than complex. 5. Flat is better than nested. '''.splitlines(keepends=True)# d = difflib.Differ()# print(''.join(list(d.compare(text1,text2))))d = difflib.HtmlDiff()htmlContent = d.make_file(text1,text2)# print(htmlContent)with open('diff.html','w') as f: f.write(htmlContent)
linux文件之间的对比
import difflibfilename1 = '/tmp/passwd'filename2 = '/tmp/passwd1'with open(filename1) as f1,open(filename2) as f2: content1 = f1.read().splitlines(keepends=True) content2 = f2.read().splitlines(keepends=True)d = difflib.HtmlDiff()htmlcontent = d.make_file(content1,content2)with open('passwdDiff.html','w') as f: f.write(htmlcontent)
转载地址:http://eqdwi.baihongyu.com/