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 抓取动态网页内容方案详解
Dec 25 Python
为Python的web框架编写MVC配置来使其运行的教程
Apr 30 Python
TensorFlow在MAC环境下的安装及环境搭建
Nov 14 Python
python3模块smtplib实现发送邮件功能
May 22 Python
python flask实现分页的示例代码
Aug 02 Python
python 重命名轴索引的方法
Nov 10 Python
python分批定量读取文件内容,输出到不同文件中的方法
Dec 08 Python
Python实现爬取亚马逊数据并打印出Excel文件操作示例
May 16 Python
Python的缺点和劣势分析
Nov 19 Python
matplotlib 曲线图 和 折线图 plt.plot()实例
Apr 17 Python
python删除某个目录文件夹的方法
May 26 Python
TensorFlow低版本代码自动升级为1.0版本
Feb 20 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
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
2019/05/28 PHP
JavaScript面向对象之体会[总结]
2008/11/13 Javascript
轻轻松松学JS调试(不下载任何工具)
2010/04/14 Javascript
javascript 图片裁剪技巧解读
2012/11/15 Javascript
IE不支持getElementsByClassName最终完美解决方案
2012/12/17 Javascript
jquery实现图片等比例缩放以及max-width在ie中不兼容解决
2013/03/21 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
2013/12/02 Javascript
Javascript MVC框架Backbone.js详解
2014/09/18 Javascript
jQuery对象与DOM对象之间的相互转换
2015/03/03 Javascript
seajs学习教程之基础篇
2016/10/20 Javascript
js实现textarea限制输入字数
2017/02/13 Javascript
babel基本使用详解
2017/02/17 Javascript
深入浅析Vue中的 computed 和 watch
2018/06/06 Javascript
angularjs 动态从后台获取下拉框的值方法
2018/08/13 Javascript
详解VScode编辑器vue环境搭建所遇问题解决方案
2019/04/26 Javascript
element el-tree组件的动态加载、新增、更新节点的实现
2020/02/27 Javascript
javascript canvas实现简易时钟例子
2020/09/05 Javascript
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
使用优化器来提升Python程序的执行效率的教程
2015/04/02 Python
Python第三方库的安装方法总结
2016/06/06 Python
在Python中字典根据多项规则排序的方法
2019/01/21 Python
django的分页器Paginator 从django中导入类
2019/07/25 Python
Python 二叉树的层序建立与三种遍历实现详解
2019/07/29 Python
python解释器spython使用及原理解析
2019/08/24 Python
Python运行DLL文件的方法
2020/01/17 Python
Python实现UDP程序通信过程图解
2020/05/15 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
2021/03/04 Python
css3 实现元素弧线运动的示例代码
2020/04/24 HTML / CSS
英国最大的美妆产品在线零售商之一:Beauty Bay
2017/09/29 全球购物
Molly Bracken法国电子商店:法国女性时尚品牌
2019/07/24 全球购物
Speedo速比涛德国官方网站:世界领先的泳装品牌
2019/08/26 全球购物
市场部专员岗位职责
2013/11/30 职场文书
商务英语广告词大全
2014/03/18 职场文书
环保建议书500字
2014/05/14 职场文书
Nginx本地配置SSL访问的实例教程
2022/05/30 Servers
JavaScript原型链中函数和对象的理解
2022/06/16 Javascript