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 01 Python
详解Python3中字符串中的数字提取方法
Jan 14 Python
Pycharm技巧之代码跳转该如何回退
Jul 16 Python
flask中使用蓝图将路由分开写在不同文件实例解析
Jan 19 Python
15行Python代码带你轻松理解令牌桶算法
Mar 21 Python
对TensorFlow的assign赋值用法详解
Jul 30 Python
Python实现提取XML内容并保存到Excel中的方法
Sep 01 Python
python爬取cnvd漏洞库信息的实例
Feb 14 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
Jun 19 Python
numpy中三维数组中加入元素后的位置详解
Nov 28 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
Jan 15 Python
Python实现学生管理系统并生成exe可执行文件详解流程
Jan 22 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
西德产收音机
2021/03/01 无线电
PHP的栏目导航程序
2006/10/09 PHP
PHP中uploaded_files函数使用方法详解
2011/03/09 PHP
PHP date函数常用时间处理方法
2015/05/11 PHP
Aster vs KG BO3 第一场2.18
2021/03/10 DOTA
jQuery对下拉框,单选框,多选框的操作
2014/02/21 Javascript
纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示
2015/09/12 Javascript
jQuery页面元素动态添加后绑定事件丢失方法,非 live
2016/06/16 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
2016/07/18 Javascript
vue组件父子间通信详解(三)
2017/11/07 Javascript
浅谈angular2子组件的事件传递(任意组件事件传递)
2018/09/30 Javascript
JavaScript对象字面量和构造函数原理与用法详解
2020/04/18 Javascript
微信小程序实现菜单左右联动
2020/05/19 Javascript
python简单实现操作Mysql数据库
2018/01/29 Python
详解Tensorflow数据读取有三种方式(next_batch)
2018/02/01 Python
python实现随机漫步方法和原理
2019/06/10 Python
python各类经纬度转换的实例代码
2019/08/08 Python
TensorFlow实现自定义Op方式
2020/02/04 Python
python中使用.py配置文件的方法详解
2020/11/23 Python
Python项目打包成二进制的方法
2020/12/30 Python
匡威帆布鞋美国官网:Converse美国
2016/08/22 全球购物
Mybag美国/加拿大:英国奢华包包和名牌手袋网站
2020/02/16 全球购物
财务经理岗位职责
2013/11/09 职场文书
应聘编辑职位自荐信范文
2014/01/05 职场文书
初一生物教学反思
2014/01/18 职场文书
幼儿园教师个人反思
2014/01/30 职场文书
《火烧云》教学反思
2014/04/12 职场文书
项目建议书怎么写
2014/05/15 职场文书
工作会议方案
2014/05/21 职场文书
双拥工作宣传标语
2014/06/26 职场文书
司法局2014法制宣传日活动总结
2014/11/01 职场文书
django上传文件的三种方式
2021/04/29 Python
matlab xlabel位置的设置方式
2021/05/21 Python
MYSQL如何查看进程和kill进程
2022/03/13 MySQL
Python实现文字pdf转换图片pdf效果
2022/04/03 Python
Python 中面向接口编程
2022/05/20 Python