difflib文件差异对比
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了difflib文件差异对比相关的知识,希望对你有一定的参考价值。
1、两个字符串差异对比:
#!/usr/bin/env python # -*- coding:utf-8 -*- import difflib text1 = ‘‘‘text1: This module provides classes and functions for comparing sequences. including html and context and unified diffs. difflib document v7.4 add string ‘‘‘ text1_lines = text1.splitlines() text2 = ‘‘‘text2: This module provides classes and functions for comparing sequences. including HTML and context and unified diffs. difflib document v7.5 add string ‘‘‘ text2_lines = text2.splitlines() d = difflib.Differ() diff = d.compare(text1_lines,text2_lines) print ‘\n‘.join(list(diff)) 结果:
[[email protected] test]# python a3.py - text1: ? ^ + text2: ? ^ This module provides classes and functions for comparing sequences. including HTML and context and unified diffs. - difflib document v7.4 ? ^ + difflib document v7.5 ? ^ add string [[email protected] test]#
2、生成HTML格式对比:
#!/usr/bin/env python # -*- coding:utf-8 -*- import difflib text1 = ‘‘‘text1: This module provides classes and functions for comparing sequences. including HTML and context and unified diffs. difflib document v7.4 add string ‘‘‘ text1_lines = text1.splitlines() text2 = ‘‘‘text2: This module provides classes and functions for comparing sequences. including HTML and context and unified diffs. difflib document v7.5 add string ‘‘‘ text2_lines = text2.splitlines() d = difflib.HtmlDiff() print d.make_file(text1_lines,text2_lines) python a3.py > diff.html 结果: 黄色部分代表差异的部分
3、对比文件差异:
#!/usr/bin/env python # -*- coding:utf-8 -*- import difflib import sys try: textfile1 = sys.argv[1] textfile2 = sys.argv[2] except Exception,e: print "Error:" + str(e) print "Usage: a3.py filename1 filename2" sys.exit() def readfile(filename): try: fileHandle = open(filename,‘rb‘) text = fileHandle.read().splitlines() fileHandle.close() return text except IOError as error: print (‘Read file Error:‘ + str(error)) sys.exit() if textfile1 == "" or textfile2 == "": print "Usage: a3.py filename1 filename2" sys.exit() text1_lines = readfile(textfile1) text2_lines = readfile(textfile2) d = difflib.HtmlDiff() print d.make_file(text1_lines,text2_lines) python a3.py install.log installl.log > diff2.html 结果: 黄色部分代表差异的部分
本文出自 “gswcfl” 博客,请务必保留此出处http://guoshiwei.blog.51cto.com/2802413/1928752
以上是关于difflib文件差异对比的主要内容,如果未能解决你的问题,请参考以下文章