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爬虫入门教程之点点美女图片爬虫代码分享
Sep 02 Python
使用python实现rsa算法代码
Feb 17 Python
Python进阶之递归函数的用法及其示例
Jan 31 Python
Python socket套接字实现C/S模式远程命令执行功能案例
Jul 06 Python
Python 循环终止语句的三种方法小结
Jun 24 Python
Python叠加两幅栅格图像的实现方法
Jul 05 Python
python傅里叶变换FFT绘制频谱图
Jul 19 Python
python3-flask-3将信息写入日志的实操方法
Nov 12 Python
TensorFlow自定义损失函数来预测商品销售量
Feb 05 Python
Pycharm导入anaconda环境的教程图解
Jul 31 Python
python lambda的使用详解
Feb 26 Python
Python Django / Flask如何使用Elasticsearch
Apr 19 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禁止个别IP访问网站
2013/10/30 PHP
php更新mysql后获取改变行数的方法
2014/12/25 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
PHP 实现缩略图
2021/03/09 PHP
用正则xmlHttp实现的偷(转)
2007/01/22 Javascript
JS的递增/递减运算符和带操作的赋值运算符的等价式
2007/12/08 Javascript
JavaScript 对象模型 执行模型
2010/10/15 Javascript
JavaScript下利用fso判断文件是否存在的代码
2010/12/11 Javascript
基于jquery实现的鼠标拖拽元素复制并写入效果
2011/08/23 Javascript
JavaScript高级程序设计 阅读笔记(四) ECMAScript中的类型转换
2012/02/27 Javascript
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
javascript格式化json显示实例分析
2015/04/21 Javascript
JQuery操作textarea,input,select,checkbox方法
2015/09/02 Javascript
jqTransform美化表单
2015/10/10 Javascript
bootstrap警告框示例代码分享
2017/05/17 Javascript
Node.js学习之查询字符串解析querystring详解
2017/09/28 Javascript
Jquery $.map使用方法实例详解
2020/09/01 jQuery
python中的__slots__使用示例
2015/02/26 Python
pymongo给mongodb创建索引的简单实现方法
2015/05/06 Python
django 实现电子支付功能的示例代码
2018/07/25 Python
Python实现的序列化和反序列化二叉树算法示例
2019/03/02 Python
Python中print和return的作用及区别解析
2019/05/05 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
2020/02/23 Python
Scrapy框架介绍之Puppeteer渲染的使用
2020/06/19 Python
python GUI计算器的实现
2020/10/09 Python
ECCO爱步官方旗舰店:丹麦鞋履品牌
2018/01/02 全球购物
英国日常交易网站:Wowcher
2018/09/04 全球购物
Juicy Couture Beauty官方网站:香水和化妆品
2019/03/12 全球购物
英国百年闻名的优质健康产品连锁店:Holland & Barrett
2019/12/19 全球购物
个人银行贷款担保书
2014/04/01 职场文书
伊索寓言教学反思
2014/05/01 职场文书
企业介绍信范文
2015/01/30 职场文书
2016教师廉洁从教心得体会
2016/01/13 职场文书
Python中的min及返回最小值索引的操作
2021/05/10 Python
Django使用channels + websocket打造在线聊天室
2021/05/20 Python
教你使用VS Code的MySQL扩展管理数据库的方法
2022/01/22 MySQL