Python使用difflib模块比较两个文件内容异同,同时输出html易浏览
2019-01-08 13:26
609 查看
因工作需求,需要对比连个文件异同,并输出html格式来对比。
#!/usr/bin/python # -*- coding: utf-8 -*- import sys import difflib def read_file(filename): try: with open(filename, 'r') as f: return f.readlines() except IOError: print("ERROR: 没有找到文件:%s或读取文件失败!" % filename) sys.exit(1) def compare_file(file1, file2, out_file): file1_content = read_file(file1) file2_content = read_file(file2) d = difflib.HtmlDiff() result = d.make_file(file1_content, file2_content) old_str='charset=ISO-8859-1' new_str='charset=UTF-8' with open(out_file, 'w') as f: f.writelines(result.replace(old_str,new_str)) if __name__ == '__main__': compare_file(r'd:\1\a.log', r'd:\2\a.log', r'd:\result.html')
输出为一个result.html文件,打开后已于浏览。
参考:Python--比较文件内容
python使用difflib对比文件示例
Python自动化运维笔记(四):使用difflib模块实现文件内容差异对比
还有一种需要,需要手动要检测的脚本
difflib模块文件内容差异对比
源码a.py如下:(对比两个配置文件差异)
#!/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: python sample3.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() text1_lines = readfile(textfile1) text2_lines = readfile(textfile2) d = difflib.HtmlDiff() print d.make_file(text1_lines,text2_lines)
用法:
python a.py nginx.conf.v1 nginx.conf.v2 > sample3_diff.html
相关文章推荐
- 用python比较两个文件中内容的不同之处, 并输出行号和内容.
- python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。
- 使用Python的MD5模块比较两个文件是否一致
- Python使用difflib对比两个文件操作实例
- 使用内存映射比较两个wave文件的异同
- Python使用difflib对比两个文件操作实例
- Python3.6使用logger模块,2次print,重定向,输出信息到指定文件,使用traceback模块重定向错误输出
- 使用python实现两个文件夹里文件的对比(包含内容的对比)
- 在ashx文件中输出html中的文本框和按钮,并且当单击按钮时,输出文本框中的文字到网页上,同时文本框中的内容保持不变。
- python读取文件同时输出行号和内容
- python3 常用模块(时间、os路径及文件操作、字符串比较,文件内容比较等模块)
- 经常使用的一个python logging封装,支持同时向console和文件输出
- python difflib模块实现两个文件差异对比,并输出html格式。
- Python使用difflib对比两个文件操作实例
- Python---对html文件内容进行搜索取出特定URL地址字符串,保存成列表,并使用每个url下载图片,并保存到硬盘上,使用正则re
- 经常使用的一个python logging封装,支持同时向console和文件输出
- Python---对html文件内容进行搜索取出特定URL地址字符串,保存成列表,并使用每个url下载图片,并保存到硬盘上,使用bs4,beautifulsoup模块
- OpenCV之core 模块. 核心功能(2)基本绘图 随机数发生器&绘制文字 离散傅立叶变换 输入输出XML和YAML文件 与 OpenCV 1 同时使用
- 使用python比较两个文件的不同之处
- 使用DOS下的FC命令比较两个文件的异同