天天看點

difflib比較兩個文檔的不同之處

Linux:直接输入vimdiff file1 file2可比较文件file1和file2

window:生成html格式,网页打开直观,执行命令:python diff.py file1 file2

diff.py代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
import difflib

try:
	tfile1=sys.argv[1]
	tfile2=sys.argv[2]
except Exception,e:
	print "错误:"+str(e)
	print "请准确输入参数,例如:python diff.py file1 file2"
	sys.exit()
def readfile(filename):
	try:
		fileHandle=open(filename,'rb')
		lines=fileHandle.read().splitlines()
		fileHandle.close()
		return lines
	except IOError as error:
		print('读取文件错误:'+str(error))
		sys.exit()
if tfile1=="" or tfile2=="":
	print "请准确输入参数,例如:python diff.py file1 file2"
	sys.exit()
	
tfile1_lines=readfile(tfile1)
tfile2_lines=readfile(tfile2)

#d=difflib.HtmlDiff()
#print s.make_file(tfile1_lines,tfile2_lines)

#为了生成html能识别中文,可用下面代码 #修改diff.html的编码,将ISO-8859-1改为UTF-8
old_str='charset=ISO-8859-1'
new_str='charset=UTF-8'
d=difflib.HtmlDiff()
q=d.make_file(tfile1_lines,tfile2_lines)
with open('diff.html','w') as f_new:
	f_new.write(q.replace(old_str,new_str))
           

Â