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使用正则表达式匹配字符串开头并打印示例
Jan 11 Python
Python语言描述最大连续子序列和
Dec 05 Python
python cs架构实现简单文件传输
Mar 20 Python
Selenium定位元素操作示例
Aug 10 Python
使用Python如何测试InnoDB与MyISAM的读写性能
Sep 18 Python
Python OpenCV读取png图像转成jpg图像存储的方法
Oct 28 Python
nohup后台启动Python脚本,log不刷新的解决方法
Jan 14 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
Jul 07 Python
Python自动化测试笔试面试题精选
Mar 12 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
May 13 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
Jun 02 Python
Django配置Bootstrap, js实现过程详解
Oct 13 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
基于CakePHP实现的简单博客系统实例
2015/06/28 PHP
利用PHP访问带有密码的Redis方法示例
2017/02/09 PHP
php利用imagemagick实现复古老照片效果实例
2017/02/16 PHP
php并发加锁问题分析与设计代码实例讲解
2021/02/26 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
2021/03/09 PHP
javascript 四则运算精度修正函数代码
2010/05/31 Javascript
从零开始学习jQuery (三) 管理jQuery包装集
2011/02/23 Javascript
文件编码导致jquery失效的解决方法
2013/06/26 Javascript
ExtJS4中的requires使用方法示例介绍
2013/12/03 Javascript
Jquery操作radio的简单实例
2014/01/06 Javascript
刷新页面的几种方法小结(JS,ASP.NET)
2014/01/07 Javascript
js调试系列 初识控制台
2014/06/18 Javascript
解决jQuery使用JSONP时产生的错误
2015/12/02 Javascript
浅谈几种常用的JS类定义方法
2016/06/08 Javascript
AngularJS实现数据列表的增加、删除和上移下移等功能实例
2016/09/05 Javascript
javascript实现消灭星星小游戏简单版
2016/11/15 Javascript
Node.js测试中的Mock文件系统详解
2016/11/21 Javascript
使用vue实现点击按钮滑出面板的实现代码
2017/01/10 Javascript
easyui 中的datagrid跨页勾选问题的实现方法
2017/01/18 Javascript
jQuery图片瀑布流的简单实现代码
2017/03/15 Javascript
JS实现仿微信支付弹窗功能
2018/06/25 Javascript
[48:31]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第二场 12.17
2020/12/19 DOTA
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
python pandas 组内排序、单组排序、标号的实例
2018/04/12 Python
python使用pdfminer解析pdf文件的方法示例
2018/12/20 Python
Python Tensor FLow简单使用方法实例详解
2020/01/14 Python
使用Keras预训练模型ResNet50进行图像分类方式
2020/05/23 Python
简单了解python关键字global nonlocal区别
2020/09/21 Python
CSS3 calc()会计算属性详解
2018/02/27 HTML / CSS
美国休闲服装品牌:J.Crew Factory
2017/03/04 全球购物
马来西亚和新加坡巴士票在线预订:CatchThatBus
2018/11/17 全球购物
中国制造网:Made-in-China.com
2019/10/25 全球购物
解释i节点在文件系统中的作用
2013/11/26 面试题
好人好事事迹材料
2014/02/12 职场文书
对外汉语专业大学生职业生涯规划书
2014/10/11 职场文书
初婚未育证明样本
2014/10/24 职场文书