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正则表达式修复网站文章字体不统一的解决方法
Feb 21 Python
Python去除字符串两端空格的方法
May 21 Python
Python实现变量数值交换及判断数组是否含有某个元素的方法
Sep 18 Python
python操作xlsx文件的包openpyxl实例
May 03 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
Jun 19 Python
python 动态调用函数实例解析
Oct 21 Python
Python如何优雅获取本机IP方法
Nov 10 Python
40行Python代码实现天气预报和每日鸡汤推送功能
Feb 27 Python
Python ckeditor富文本编辑器代码实例解析
Jun 22 Python
如何用python插入独创性声明
Mar 31 Python
python tkinter模块的简单使用
Apr 07 Python
python脚本框架webpy的url映射详解
Nov 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
PHP音乐采集(部分代码)
2007/02/14 PHP
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
2011/08/09 PHP
PHP 日,周,月点击排行统计
2012/01/11 PHP
PHP识别二维码的方法(php-zbarcode安装与使用)
2016/07/07 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
符合标准的js表单提交的代码
2007/09/13 Javascript
jquery一句话全选/取消全选
2011/03/01 Javascript
再谈querySelector和querySelectorAll的区别与联系
2012/04/20 Javascript
Javascript中string转date示例代码
2013/11/01 Javascript
JS读取XML文件示例代码
2013/11/15 Javascript
jquery实现聚光灯效果的方法
2015/02/06 Javascript
jquery实现先淡出再折叠收起的动画效果
2015/08/07 Javascript
JS封装通过className获取元素的函数示例
2016/12/20 Javascript
详解如何使用PM2将Node.js的集群变得更加容易
2017/11/15 Javascript
JS实现的缓冲运动效果示例
2018/04/30 Javascript
手把手教你vue-cli单页到多页应用的方法
2018/05/31 Javascript
微信小程序动态添加view组件的实例代码
2019/05/23 Javascript
vue实现拖拽的简单案例 不超出可视区域
2019/07/25 Javascript
js实现无限层级树形数据结构(创新算法)
2020/02/27 Javascript
jQuery 图片查看器插件 Viewer.js用法简单示例
2020/04/04 jQuery
python协程用法实例分析
2015/06/04 Python
Python两个内置函数 locals 和globals(学习笔记)
2016/08/28 Python
python 编码规范整理
2018/05/05 Python
python 图像处理画一个正弦函数代码实例
2019/09/10 Python
Python 实现一个手机号码获取妹子名字的功能
2019/09/25 Python
python 利用jinja2模板生成html代码实例
2019/10/10 Python
Tensorflow 卷积的梯度反向传播过程
2020/02/10 Python
django执行数据库查询之后实现返回的结果集转json
2020/03/31 Python
html5组织内容_动力节点Java学院整理
2017/07/10 HTML / CSS
南非领先的在线旅行社:Travelstart南非
2016/09/04 全球购物
英国时尚家具、家居饰品及礼品商店:Graham & Green
2016/09/15 全球购物
美国专业级皮肤病和spa品质护肤品的高级零售网站:SkinCareRx
2017/02/06 全球购物
通往英国高街的商店橱窗:Down Your High Street
2020/07/19 全球购物
4s客服专员岗位职责
2013/12/01 职场文书
劳动工资科岗位职责范本
2014/03/02 职场文书
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
2022/04/12 PostgreSQL