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压缩文件夹内所有文件为zip文件的方法
Jun 20 Python
Python求算数平方根和约数的方法汇总
Mar 09 Python
python基于phantomjs实现导入图片
May 13 Python
单利模式及python实现方式详解
Mar 20 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
Jun 26 Python
python将一个英文语句以单词为单位逆序排放的方法
Dec 20 Python
Python调用服务接口的实例
Jan 03 Python
python 导入数据及作图的实现
Dec 03 Python
新建文件时Pycharm中自动设置头部模板信息的方法
Apr 17 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
May 17 Python
python 爬取英雄联盟皮肤并下载的示例
Dec 04 Python
Python运算符+与+=的方法实例
Feb 18 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文件中是否含有bom的函数
2012/05/31 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
laravel http 自定义公共验证和响应的方法
2019/09/29 PHP
JS对URL字符串进行编码/解码分析
2008/10/25 Javascript
用JavaScript玩转游戏物理(一)运动学模拟与粒子系统
2010/06/19 Javascript
使用Jquery搭建最佳用户体验的登录页面之记住密码自动登录功能(含后台代码)
2011/07/10 Javascript
JS对select控件option选项的增删改查示例代码
2013/10/21 Javascript
showModelDialog弹出文件下载窗口的使用示例
2013/11/19 Javascript
js实现文本框只允许输入数字并限制数字大小的方法
2015/08/19 Javascript
js定时器实例分享
2016/12/20 Javascript
各种选择框jQuery的选中方法(实例讲解)
2017/06/27 jQuery
ES6中的rest参数与扩展运算符详解
2017/07/18 Javascript
利用JavaScript的%做隔行换色的实例
2017/11/25 Javascript
微信小程序wx.getImageInfo()如何获取图片信息
2018/01/26 Javascript
JavaScript实现创建自定义对象的常用方式总结
2018/07/09 Javascript
bootstrap table合并行数据并居中对齐效果
2018/10/17 Javascript
vue-cli3.0+element-ui上传组件el-upload的使用
2018/12/03 Javascript
JavaScript高阶教程之“==”隐藏下的类型转换
2019/04/11 Javascript
Vue 实现一个命令式弹窗组件功能
2019/09/25 Javascript
vuex(vue状态管理)的特殊应用案例分享
2020/03/03 Javascript
Vue数组响应式操作及高阶函数使用代码详解
2020/08/01 Javascript
Python 专题四 文件基础知识
2017/03/20 Python
Python实现的建造者模式示例
2018/08/06 Python
Python解释器以及PyCharm的安装教程图文详解
2020/02/26 Python
用JAVA SOCKET编程,读服务器几个字符,再写入本地显示
2012/11/25 面试题
Oracle性能调优原则
2012/05/03 面试题
一封普通求职者的求职信
2013/11/20 职场文书
大专毕业生自我鉴定
2013/11/21 职场文书
两年的个人工作自我评价
2014/01/10 职场文书
2014年中班元旦活动方案
2014/02/14 职场文书
《学会合作》教学反思
2014/04/12 职场文书
需求分析说明书
2014/05/09 职场文书
淘宝客服专员岗位职责
2015/04/07 职场文书
摩登时代观后感
2015/06/03 职场文书
2016年11月份红领巾广播稿
2015/12/21 职场文书
MySQL表的增删改查(基础)
2021/04/05 MySQL