背景
最近有个小需求,需要比对两个文件,并展示两个文件的不同之处。
过程
1 文件比对
文件比对尝试了小文件按行取hash\md5,大文件分块等方式。
2 展示
展示可利用python原生difflib模块(具体详情可参考官方文档),
dd = difflib.HtmlDiff()
dd.make_file() #返回的是html字符串,接收两个待展示的字符串列表
3 接口
接口开发,直接上代码。
import flask
import sys
import difflib
import time
server = flask.Flask(__name__)
def read_file(filename):
try:
with open(filename, 'r',encoding='utf-8') as f:
return f.readlines()
except IOError:
print("ERROR: 没有找到文件:%s或读取文件失败!" % filename)
sys.exit(1)
@server.route('/<file1>/<file2>',methods=['GET','POST']) #方便测试直接将要比对的两个文件参数插入到URL中,也可参考采用下一段注释掉的代码(未调试&#