Python自动化运维_文件内容差异对比分析


Posted in Python onDecember 13, 2017

模块:difflib

安装:Python版本大于等于2.3系统自带

功能:对比文本之间的差异,而且支持输出可读性比较强的HTML文档,与Linux中的diff命令比较相似。

两个字符串的差异对比:

#import difflib
 
#text1='''
 
#hello world.
 
#how are you.
 
#nice to meet you.
 
#'''
 
#text1_lines=text1.splitlines() # 以行进行分割,便于进行对比
 
#text2='''
 
#Hello World.
 
#how are you!
 
#Nice to meet you~
 
#'''
 
#text2_lines=text2.splitlines() # 以行进行分割,便于进行对比
 
#dif1=difflib.Differ() # 创建Differ() 对象
 
#diff1=dif1.compare(text1_lines,text2_lines) # 采用compare() 方法对字符串进行比较
 
#print('\n'.join(list(diff1)))

此外difflib 还有SequenceMatcher()类,此类支持任意类型序列的比较;还有HtmlDiff() 类,此类支持将比较结果以HTML格式输出。

符号含义说明:

符号

含义

'-'

包含在第一个序列行中,但不包含在第二个序列行

'+'

包含在第二个序列行中,但不包含在第一个序列行

' '

两个序列行一致

'?'

标志两个序列行存在增量差异

'^'

标志出两个序列行存在的差异字符

生成HTML格式文档:

#import difflib
#text1='''
 
#hello world.
 
#how are you.
 
#nice to meet you.
 
#'''
 
#text1_lines=text1.splitlines() # 以行进行分割,便于进行对比
 
#text2='''
 
#Hello World.
 
#how are you!
 
#Nice to meet you~
 
#'''
 
#text2_lines=text2.splitlines() # 以行进行分割,便于进行对比
 
#d=difflib.HtmlDiff()
 
#print(d.make_file(text1_lines,text2_lines))
 
# 之后使生成的文件变为 .html即可使用浏览器查看

对比配置文件差异:

#import difflib
 
#import os
 
#try:
 
# textfile1=sys.argv[1] # 第1个配置文件路径参数
 
# textfile2=sys.argv[2] # 第2个配置文件路径参数
 
#except Exception,e:
 
# print('Error:'+str(e))
 
# print('使用:脚本名.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('读取文件错误:'+str(error))
 
# sys.exit()
 
#if textfile1=='or textfile2==':
 
# print('使用:脚本名.py filename1 filename2')
 
# sys.exit()
 
#text1_lines=readfile(textfile1) # 调用readfile获取分隔后的字符串
 
#text2_lines=readfile(textfile2)
 
#d=difflib.HtmlDiff() # 创建HtmlDiff() 类对象
 
#print(d.make_file(text1_lines,text2_lines)) # 通过make_file() 方法输出HTML格式的结果

以上这篇Python自动化运维_文件内容差异对比分析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python Web服务器Tornado使用小结
May 06 Python
python开发之函数定义实例分析
Nov 12 Python
python中string模块各属性以及函数的用法介绍
May 30 Python
实例探究Python以并发方式编写高性能端口扫描器的方法
Jun 14 Python
解决pyqt中ui编译成窗体.py中文乱码的问题
Dec 23 Python
老生常谈Python startswith()函数与endswith函数
Sep 08 Python
Python标准模块--ContextManager上下文管理器的具体用法
Nov 27 Python
Flask实现跨域请求的处理方法
Sep 27 Python
Python 计算任意两向量之间的夹角方法
Jul 05 Python
利用pyshp包给shapefile文件添加字段的实例
Dec 06 Python
浅谈django 模型类使用save()方法的好处与注意事项
Mar 28 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
Sep 26 Python
Python实现自动发送邮件功能
Mar 02 #Python
django站点管理详解
Dec 12 #Python
Django 生成登陆验证码代码分享
Dec 12 #Python
python+django加载静态网页模板解析
Dec 12 #Python
Django入门使用示例
Dec 12 #Python
django使用html模板减少代码代码解析
Dec 12 #Python
Python使用三种方法实现PCA算法
Dec 12 #Python
You might like
ThinkPHP让分页保持搜索状态的方法
2014/07/02 PHP
php中字符集转换iconv函数使用总结
2014/10/11 PHP
PHP中让curl支持sock5的代码实例
2015/01/21 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
thinkphp5框架扩展redis类方法示例
2019/05/06 PHP
jQuery新闻滚动插件 jquery.roller.js
2011/06/27 Javascript
js调用activeX获取u盘序列号的代码
2011/11/21 Javascript
nodejs 提示‘xxx’ 不是内部或外部命令解决方法
2014/11/20 NodeJs
超精准的javascript验证身份证号的具体实现方法
2015/11/18 Javascript
jQuery使用$获取对象后检查该对象是否存在的实现方法
2016/09/04 Javascript
jquery操作checkbox火狐下第二次无法勾选的解决方法
2016/10/10 Javascript
javascript self对象使用详解
2016/10/18 Javascript
TypeScript入门-基本数据类型
2017/03/28 Javascript
js实现数字递增特效【仿支付宝我的财富】
2017/05/05 Javascript
jQuery实现监听下拉框选中内容发生改变操作示例
2018/07/13 jQuery
Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)
2018/10/28 Javascript
详解关于表格合并span-method方法的补充(表格数据由后台动态返回)
2019/05/21 Javascript
electron 安装,调试,打包的具体使用
2019/11/06 Javascript
[02:57]DOTA2亚洲邀请赛 SECRET战队出场宣传片
2015/02/07 DOTA
[01:35]辉夜杯战队访谈宣传片—iG.V
2015/12/25 DOTA
Python中几种操作字符串的方法的介绍
2015/04/09 Python
基于scrapy实现的简单蜘蛛采集程序
2015/04/17 Python
python去除拼音声调字母,替换为字母的方法
2018/11/28 Python
python dict 相同key 合并value的实例
2019/01/21 Python
tensorflow模型继续训练 fineturn实例
2020/01/21 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
2020/01/24 Python
mac在matplotlib中显示中文的操作方法
2020/03/06 Python
css3.0新属性效果在ie下的解决方案
2010/05/10 HTML / CSS
带你认识HTML5中的WebSocket
2015/05/22 HTML / CSS
大学活动邀请函
2014/01/28 职场文书
道路交通安全实施方案
2014/03/12 职场文书
学校运动会霸气口号
2014/06/07 职场文书
广告学专业求职信
2014/06/19 职场文书
新文化运动的口号
2014/06/21 职场文书
2016年班主任培训心得体会
2016/01/07 职场文书
MySQL面试题讲解之如何设置Hash索引
2021/11/01 MySQL