Python实现的文本对比报告生成工具示例


Posted in Python onMay 22, 2018

本文实例讲述了Python实现的文本对比报告生成工具。分享给大家供大家参考,具体如下:

借助于difflib的功能,可以针对我们的使用情况进一步进行功能的聚合。我想要的功能是输入两个文件名以及一个输出报告的文件名之后,运行直接给出最终的报告。

代码实现如下:

import sys
import difflib
try:
  file1 = sys.argv[1]
  file2 = sys.argv[2]
  report = sys.argv[3]
except Exception,e:
  print('Error:' + str(e))
  sys.exit()
def GetLines(file_name):
  return open(file_name).readlines()
txt_line1 = GetLines(file1)
txt_line2 = GetLines(file2)
d = difflib.HtmlDiff()
fid = open(report,'w')
fid.write(d.make_file(txt_line1,txt_line2))
fid.close()

测试如下:

GreydeMac-mini:Chapter_02 greyzhang$ ls
c01.py d2.py
dns_parser.py pydiff.py
d1.py diff.py
join.py
GreydeMac-mini:Chapter_02 greyzhang$ python diff.py d1.py d2.py report.html
GreydeMac-mini:Chapter_02 greyzhang$ ls
c01.py d2.py
dns_parser.py pydiff.py
d1.py diff.py
join.py report.html

使用浏览器打开报告如下:

Python实现的文本对比报告生成工具示例

报告生成成功,而整个操作也简化了不少。

Python 相关文章推荐
django 删除数据库表后重新同步的方法
May 27 Python
matplotlib实现区域颜色填充
Mar 18 Python
python实现可逆简单的加密算法
Mar 22 Python
Python 3.8新特征之asyncio REPL
May 28 Python
python字典的遍历3种方法详解
Aug 10 Python
django-rest-swagger对API接口注释的方法
Aug 29 Python
django框架创建应用操作示例
Sep 26 Python
python实发邮件实例详解
Nov 11 Python
python opencv图片编码为h264文件的实例
Dec 12 Python
Python读取Excel一列并计算所有对象出现次数的方法
Sep 04 Python
Python 3.9的到来到底是意味着什么
Oct 14 Python
如何使用Python提取Chrome浏览器保存的密码
Jun 09 Python
python smtplib模块实现发送邮件带附件sendmail
May 22 #Python
点球小游戏python脚本
May 22 #Python
python smtplib模块自动收发邮件功能(二)
May 22 #Python
python smtplib模块自动收发邮件功能(一)
May 22 #Python
python模块smtplib学习
May 22 #Python
Pipenv一键搭建python虚拟环境的方法
May 22 #Python
PyTorch线性回归和逻辑回归实战示例
May 22 #Python
You might like
php中文字符截取防乱码
2008/03/28 PHP
php不使用插件导出excel的简单方法
2014/03/04 PHP
php 静态属性和静态方法区别详解
2017/04/09 PHP
彻底搞懂PHP 变量结构体
2017/10/11 PHP
JS正则中的RegExp对象对象
2012/11/07 Javascript
简单的ajax连接库分享(不用jquery的ajax)
2014/01/19 Javascript
JS运动框架之分享侧边栏动画实例
2015/03/03 Javascript
javascript密码强度校验代码(两种方法)
2015/08/10 Javascript
AngularJs bootstrap详解及示例代码
2016/09/01 Javascript
微信端开发--登录小程序步骤
2017/01/11 Javascript
Ajax跨域实现代码(后台jsp)
2017/01/21 Javascript
Bootstrap标签页(Tab)插件使用方法
2017/03/21 Javascript
深入理解vue2.0路由如何配置问题
2017/07/18 Javascript
vue-router+vuex addRoutes实现路由动态加载及菜单动态加载
2017/09/28 Javascript
jQuery 点击获取验证码按钮及倒计时功能
2018/09/20 jQuery
使用vue中的混入mixin优化表单验证插件问题
2019/07/02 Javascript
Vue父组件向子组件传值以及data和props的区别详解
2020/03/02 Javascript
Element实现表格嵌套、多个表格共用一个表头的方法
2020/05/09 Javascript
快速了解Vue父子组件传值以及父调子方法、子调父方法
2020/07/15 Javascript
[06:16]DOTA2守卫传承者——职业选手谈心路历程
2015/02/26 DOTA
详解Python中的__init__和__new__
2014/03/12 Python
Python装饰器的函数式编程详解
2015/02/27 Python
python通过BF算法实现关键词匹配的方法
2015/03/13 Python
Python实现将xml导入至excel
2015/11/20 Python
Python实现包含min函数的栈
2016/04/29 Python
Python基于分水岭算法解决走迷宫游戏示例
2017/09/26 Python
Python中循环后使用list.append()数据被覆盖问题的解决
2018/07/01 Python
Python列表倒序输出及其效率详解
2020/03/04 Python
详解如何在css中引入自定义字体(font-face)
2018/05/17 HTML / CSS
C#实现启动一个进程
2016/10/01 面试题
社区党员先进事迹
2014/01/22 职场文书
生日寄语大全
2014/04/08 职场文书
煤矿安全生产月活动总结
2014/07/05 职场文书
2016大学生就业指导课心得体会
2016/01/15 职场文书
HTML5中 rem适配方案与 viewport 适配问题详解
2021/04/27 HTML / CSS
解决Python字典查找报Keyerror的问题
2021/05/26 Python