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 16 Python
用Python中的字典来处理索引统计的方法
May 05 Python
给Python入门者的一些编程建议
Jun 15 Python
Python设置默认编码为utf8的方法
Jul 01 Python
Python+OpenCV让电脑帮你玩微信跳一跳
Jan 04 Python
python实现数据写入excel表格
Mar 25 Python
Python进阶:生成器 懒人版本的迭代器详解
Jun 29 Python
深入了解Django中间件及其方法
Jul 26 Python
python网络爬虫 Scrapy中selenium用法详解
Sep 28 Python
python实现两个字典合并,两个list合并
Dec 02 Python
python opencv实现图像配准与比较
Feb 09 Python
Python何绘制带有背景色块的折线图
Apr 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
PHP配置心得包含MYSQL5乱码解决
2006/11/20 PHP
PHP定时任务延缓执行的实现
2014/10/08 PHP
thinkPHP删除前弹出确认框的简单实现方法
2016/05/16 PHP
Yii2实现log输出到file及database的方法
2016/11/12 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
2019/03/06 PHP
JavaScript Event学习第五章 高级事件注册模型
2010/02/07 Javascript
js两行代码按指定格式输出日期时间
2011/10/21 Javascript
jquery focus(fn),blur(fn)方法实例代码
2011/12/16 Javascript
用Javascript获取页面元素的具体位置
2013/12/09 Javascript
jquery中html、val与text三者属性取值的联系与区别介绍
2013/12/29 Javascript
jQuery对val和atrr("value")赋值的区别介绍
2014/09/26 Javascript
bootstrap实现图片自动轮播
2016/12/21 Javascript
原生JS实现在线问卷调查投票特效
2017/01/03 Javascript
nodejs搭建本地服务器并访问文件的方法
2017/03/03 NodeJs
原生javascript移动端滑动banner效果
2017/03/10 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
2017/04/20 Javascript
JavaScript 跨域之POST实现方法
2018/05/07 Javascript
JavaScript中常见内置函数用法示例
2018/05/14 Javascript
微信小程序实现树莓派(raspberry pi)小车控制
2020/02/12 Javascript
jQuery表单校验插件validator使用方法详解
2020/02/18 jQuery
python文件读写操作与linux shell变量命令交互执行的方法
2015/01/14 Python
Python实现端口检测的方法
2018/07/24 Python
Python实现处理逆波兰表达式示例
2018/07/30 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
2018/11/06 Python
Django RBAC权限管理设计过程详解
2019/08/06 Python
使用Fabric自动化部署Django项目的实现
2019/09/27 Python
如何在pycharm中安装第三方包
2020/10/27 Python
彪马加拿大官网:PUMA加拿大
2018/10/04 全球购物
高一军训的心得体会
2014/09/01 职场文书
领导干部贪图享乐整改措施
2014/09/21 职场文书
上课睡觉检讨书300字
2014/11/18 职场文书
如何让2019年上半年的工作总结更出色!
2019/07/01 职场文书
python必学知识之文件操作(建议收藏)
2021/05/30 Python
MySQL 不等于的三种使用及区别
2021/06/03 MySQL
HTML常用标签超详细整理
2022/03/19 HTML / CSS