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编程语言的35个与众不同之处(语言特征和使用技巧)
Jul 07 Python
python简单程序读取串口信息的方法
Mar 13 Python
利用aardio给python编写图形界面
Aug 21 Python
使用Python更换外网IP的方法
Jul 09 Python
python面向对象法实现图书管理系统
Apr 19 Python
python中property属性的介绍及其应用详解
Aug 29 Python
python super的使用方法及实例详解
Sep 25 Python
使用python快速实现不同机器间文件夹共享方式
Dec 22 Python
python 实现查询Neo4j多节点的多层关系
Dec 23 Python
如何使用python代码操作git代码
Feb 29 Python
python -v 报错问题的解决方法
Sep 15 Python
关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题
Nov 24 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
萌王史莱姆”萌王性别尴尬!那“萌战”归女组还是男?
2018/12/17 日漫
php 将bmp图片转为jpg等其他任意格式的图片
2009/06/21 PHP
PHP 中文处理技巧
2010/04/25 PHP
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
2012/05/16 PHP
关于Blog顶部的滚动导航条代码
2006/09/25 Javascript
JS setCapture 区域外事件捕捉
2010/03/18 Javascript
js鼠标点击图片切换效果代码分享
2015/08/26 Javascript
JS+CSS相对定位实现的下拉菜单
2015/10/06 Javascript
轻松学习jQuery插件EasyUI EasyUI实现树形网络基本操作(2)
2015/11/30 Javascript
js表单提交和submit提交的区别实例分析
2015/12/10 Javascript
VUEJS实战之构建基础并渲染出列表(1)
2016/06/13 Javascript
vuex实现简易计数器
2016/10/27 Javascript
jQuery序列化后的表单值转换成Json
2017/06/16 jQuery
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
2018/01/16 Javascript
vue后台管理之动态加载路由的方法
2018/08/13 Javascript
vue自定义全局共用函数详解
2018/09/18 Javascript
基于React Native 0.52实现轮播图效果
2020/08/25 Javascript
React实现评论的添加和删除
2020/10/20 Javascript
一起深入理解js中的事件对象
2021/02/06 Javascript
Python通过解析网页实现看报程序的方法
2014/08/04 Python
python编写暴力破解FTP密码小工具
2014/11/19 Python
Linux 发邮件磁盘空间监控(python)
2016/04/23 Python
Python多进程与服务器并发原理及用法实例分析
2018/08/21 Python
Scrapy框架爬取西刺代理网免费高匿代理的实现代码
2019/02/22 Python
PyQt5重写QComboBox的鼠标点击事件方法
2019/06/25 Python
python基于paramiko将文件上传到服务器代码实现
2019/07/08 Python
在python中将list分段并保存为array类型的方法
2019/07/15 Python
django框架面向对象ORM模型继承用法实例分析
2019/07/29 Python
python 3.6.7实现端口扫描器
2019/09/04 Python
乌克兰第一的珠宝网上商店:Gold.ua
2019/11/29 全球购物
前台文员个人求职信范文
2014/01/05 职场文书
高三历史教学反思
2014/01/09 职场文书
大学生就业求职信
2014/06/12 职场文书
贷款委托书怎么写
2014/08/02 职场文书
优秀高中学生评语
2014/12/30 职场文书
员工离职感谢信
2015/01/22 职场文书