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实现决策树ID3算法的示例代码
May 30 Python
Python实现的远程登录windows系统功能示例
Jun 21 Python
对Python的zip函数妙用,旋转矩阵详解
Dec 13 Python
Python实现 版本号对比功能的实例代码
Apr 18 Python
详解Python下载图片并保存本地的两种方式
May 15 Python
基于Python实现签到脚本过程解析
Oct 25 Python
python图的深度优先和广度优先算法实例分析
Oct 26 Python
Python csv文件的读写操作实例详解
Nov 19 Python
pytorch实现onehot编码转为普通label标签
Jan 02 Python
python批量修改xml属性的实现方式
Mar 05 Python
在pycharm中创建django项目的示例代码
May 28 Python
python装饰器代码解析
Mar 23 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
破解图片防盗链的代码(asp/php)测试通过
2010/07/02 PHP
PHP数组对比函数,存在交集则返回真,否则返回假
2011/02/03 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
2014/08/21 PHP
PHP结合jQuery实现找回密码
2015/07/22 PHP
mysql查找删除重复数据并只保留一条实例详解
2016/09/24 PHP
如何在PHP中读写文件
2020/09/07 PHP
推荐40个非常优秀的jQuery插件和教程【系列三】
2011/11/09 Javascript
引入JS文件IE6报语法错误或缺少对象问题的解决方法
2014/01/09 Javascript
把jQuery的类、插件封装成seajs的模块的方法
2014/03/12 Javascript
用jquery仿做发微博功能示例
2014/04/18 Javascript
jQuery简单tab切换效果实现方法
2015/04/08 Javascript
jquery判断至少有一个checkbox被选中的方法
2015/06/05 Javascript
简介JavaScript中fixed()方法的使用
2015/06/08 Javascript
confirm确认对话框的实现方法总结
2016/06/17 Javascript
Bootstrap CSS组件之按钮下拉菜单
2016/12/17 Javascript
jquery仿ps颜色拾取功能
2017/03/08 Javascript
weui框架实现上传、预览和删除图片功能代码
2017/08/24 Javascript
vue-router 路由基础的详解
2017/10/17 Javascript
vue项目国际化vue-i18n的安装使用教程
2018/03/14 Javascript
jQuery+vue.js实现的多选下拉列表功能示例
2019/01/15 jQuery
Koa从零搭建到Api实现项目的搭建方法
2019/07/30 Javascript
python3实现绘制二维点图
2019/12/04 Python
Python编程快速上手——疯狂填词程序实现方法分析
2020/02/29 Python
python图片剪裁代码(图片按四个点坐标剪裁)
2020/03/10 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
2020/08/02 Python
基于Python实现体育彩票选号器功能代码实例
2020/09/16 Python
瑞贝卡·泰勒官方网站:Rebecca Taylor
2016/09/24 全球购物
美国在线珠宝商店:SZUL
2017/02/11 全球购物
AP澳洲中文网:澳洲正品直邮,包税收件无忧
2019/07/12 全球购物
领导检查欢迎词
2014/01/14 职场文书
团队拓展活动总结
2014/08/27 职场文书
导游词欢迎词
2015/02/02 职场文书
土建技术员岗位职责
2015/04/11 职场文书
裁员通知
2015/04/25 职场文书
民事代理词范文
2015/05/25 职场文书
JavaScript高级程序设计之变量与作用域
2021/11/17 Javascript