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 相关文章推荐
Python3 获取一大段文本之间两个关键字之间的内容方法
Oct 11 Python
使用python对文件中的数值进行累加的实例
Nov 28 Python
解决pyttsx3无法封装的问题
Dec 24 Python
Django Sitemap 站点地图的实现方法
Apr 29 Python
python opencv minAreaRect 生成最小外接矩形的方法
Jul 01 Python
python实现比对美团接口返回数据和本地mongo数据是否一致示例
Aug 09 Python
python实现网站用户名密码自动登录功能
Aug 09 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
Feb 17 Python
python实现将列表中各个值快速赋值给多个变量
Apr 02 Python
Python基于pyjnius库实现访问java类
Jul 31 Python
python selenium xpath定位操作
Sep 01 Python
python3中数组逆序输出方法
Dec 01 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
php中的观察者模式简单实例
2015/01/20 PHP
使用新浪微博API的OAuth认证发布微博实例
2015/03/27 PHP
一波PHP中cURL库的常见用法代码示例
2016/05/06 PHP
PHP实现的杨辉三角求解算法分析
2019/03/11 PHP
PHP 超级全局变量相关总结
2020/06/30 PHP
JQuery开发的数独游戏代码
2010/10/29 Javascript
使用Json比用string返回数据更友好,也更面向对象一些
2011/09/13 Javascript
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
2013/06/05 Javascript
jquery实现table鼠标经过变色代码
2013/09/25 Javascript
javascript与cookie 的问题详解
2013/11/11 Javascript
获取select元素被选中的文本内容的js代码
2014/01/29 Javascript
表单序列化与jq中的serialize使用示例
2014/02/21 Javascript
利用Keydown事件阻止用户输入实现代码
2014/03/11 Javascript
JavaScript:Array类型全面解析
2016/05/19 Javascript
浅谈js构造函数的方法与原型prototype
2016/07/04 Javascript
vue开发调试神器vue-devtools使用详解
2017/07/13 Javascript
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
angularjs数组判断是否含有某个元素的实例
2018/02/27 Javascript
vue升级之路之vue-router的使用教程
2018/08/14 Javascript
vue框架中props的typescript用法详解
2020/02/17 Javascript
解决vue props传Array/Object类型值,子组件报错的情况
2020/11/07 Javascript
[52:07]完美世界DOTA2联赛PWL S3 LBZS vs access 第二场 12.10
2020/12/13 DOTA
用Python脚本来删除指定容量以上的文件的教程
2015/05/04 Python
[原创]windows下Anaconda的安装与配置正解(Anaconda入门教程)
2018/04/05 Python
对Tensorflow中的变量初始化函数详解
2018/07/27 Python
Python装饰器简单用法实例小结
2018/12/03 Python
pandas.cut具体使用总结
2019/06/24 Python
深入浅析Python科学计算库Scipy及安装步骤
2019/10/12 Python
Python手绘可视化工具cutecharts使用实例
2019/12/05 Python
html5中嵌入视频自动播放的问题解决
2020/05/25 HTML / CSS
巴基斯坦购物网站:Goto
2019/03/11 全球购物
Fox Racing官方网站:越野摩托车和山地自行车装备和服装
2019/12/23 全球购物
什么是反射
2012/03/17 面试题
会计试用期自我评价怎么写
2014/09/18 职场文书
学前班学生评语
2014/12/29 职场文书
JavaScript原始值与包装对象的详细介绍
2021/05/11 Javascript