difflib模块主要用来对比文件内容差异
1.两个字符串的差异对比 import difflib text1 = """text1: This module provides classes and functions for comparing sequences. including HTML and context and unifled diffs. difflib documnet v7.4 add string """ text1_line = text1.splitlines() text2 = """text2: This module provides classes and functions for Comparing sequences. including HTML and context and unified diffs. difflib documnet v7.5""" text2_line = text2.splitlines() d = difflib.Differ() diff = d.compare(text1_line,text2_line) print '\n'.join(list(diff))
生成美观的对比HTML格式文件 d = difflib.HtmlDiff() print d.make_file(text1_line,text2_line) 然后运行python test.py > diff.html
2.对比nginx配置文件差异 #!/usr/bin/env python
import difflib import sys
try: textfile1 = sys.argv[1] textfile2 = sys.argv[2] except Exception,e: print "Error:" + str(e) print "Usage: test.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:test.py filename1 filename2" sys.exit()
text1_lines = readfile(textfile1) text2_lines = readfile(textfile2)
|