Python自动化运维——文件内容差异对比
Infi-chu:
http://www.cnblogs.com/Infi-chu/
模块: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自动化运维——文件与目录差异对比
Infi-chu: http://www.cnblogs.com/Infi-chu/ 模块:filecmp 安装:Python版本大于等于2.3默认自带 功能:实现文件.目录.遍历子目录的差异 常用方 ...
- 文件内容差异对比-python
上次没精力时候,看了下python自动化运维,给print加了颜色,新鲜哒 今天来写写文件对比 step1:引入difflib库(无需安装,python自带) step2:将文件内容按行分割,spli ...
- Python自动化运维:技术与最佳实践 PDF高清完整版|网盘下载内附地址提取码|
内容简介: <Python自动化运维:技术与最佳实践>一书在中国运维领域将有“划时代”的重要意义:一方面,这是国内第一本从纵.深和实践角度探讨Python在运维领域应用的著作:一方面本书的 ...
- 《Python自动化运维之路》 业务服务监控(二)
文件内容差异对比方法 使用diffie模块实现文件内容差异对比.dmib作为 Python的标准库模块,无需安装,作用是对比文本之间的差异,且支持输出可读性比较强的HTML文档,与 Linux下的di ...
- python自动化运维之CMDB篇-大米哥
python自动化运维之CMDB篇 视频地址:复制这段内容后打开百度网盘手机App,操作更方便哦 链接:https://pan.baidu.com/s/1Oj_sglTi2P1CMjfMkYKwCQ ...
- Day1 老男孩python自动化运维课程学习笔记
2017年1月7日老男孩python自动化运维课程正式开课 第一天学习内容: 上午 1.python语言的基本介绍 python语言是一门解释型的语言,与1989年的圣诞节期间,吉多·范罗苏姆为了在阿 ...
- python自动化运维学习第一天--day1
学习python自动化运维第一天自己总结的作业 所使用到知识:json模块,用于数据转化sys.exit 用于中断循环退出程序字符串格式化.format字典.文件打开读写with open(file, ...
- Python自动化运维
一.DNS域名轮询业务监控 链接:https://www.cnblogs.com/baishuchao/articles/9128953.html 二.文件内容差异对比方法 链接:https://ww ...
- Python自动化运维 技术与最佳实践PDF高清完整版免费下载|百度云盘|Python基础教程免费电子书
点击获取提取码:7bl4 一.内容简介 <python自动化运维:技术与最佳实践>一书在中国运维领域将有"划时代"的重要意义:一方面,这是国内第一本从纵.深和实践角度探 ...
随机推荐
- kubeadm安装kubernetes 1.12版本
直接写过程,有些描述就省略了关于kubeadm安装k8s 1.11.2版本可以查看:https://www.cnblogs.com/shansongxian/p/9753603.html 首先查看下k ...
- 一点一点学写Makefile(3)-增加第三方库和头文件
我们在写代码的时候不一定都是有自己来完成,一个工程中会大量使用一些比较优秀的动态库.静态库等,我们在使用这些库完成所有的代码后,需要在编译的时候将这些库使用的头文件添加到我们的工程上,将他的库文件也添 ...
- SQA计划和测试规程
一.SQA计划 (一)目的 本计划的目的是定义我们该小组所做的“云医院”项目的SQA任务和职责,在项目过程中应遵循的流程.规范和约定等,以确保软件质量得到维持. (二)范围 本计划应用于“云医院”项目 ...
- 使用DOM Breakpoints找到修改属性的Javascript代码
使用Chrome开发者工具的DOM断点功能可以让您快速找到修改了某一个DOM元素的Javascript代码. 在Chrome开发者工具里,选中想要监控的DOM元素,点击右键,选择Break on-&g ...
- 用trie树实现输入提示功能,输入php函数名,提示php函数
参照刘汝佳的trie树 结构体 #include "stdio.h" #include "stdlib.h" #include "string.h&q ...
- IT人们给个建议
开篇声明:我本身是中学老师,师范类大学计算机专业毕业,现在马上研究生学位就要拿上了,平时在学校搞网络维护什么的,事少,业余时间充足,也不想拘泥于做老师拿点工资,觉得白学计算机了,所以也搞些业余开发,如 ...
- hdu-2136 Largest prime factor---巧用素数筛法
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2136 题目大意: 每个素数在素数表中都有一个序号,设1的序号为0,则2的序号为1,3的序号为2,5的 ...
- 2018.10.4 AndroidStudio
AndroidStudio低版本sdkversion开发 Error:Minimum supported Gradle version is 4.1 Current version is 2.14.1 ...
- heidsql(mysql)安装教程和mysql修改密码
简单介绍安装 官网下载:https://mariadb.org/download/ 直接下载(mariadb-10.3.9-winx64.msi):https://github.com/weibang ...
- 【luogu P3950 部落冲突】 题解
题目连接:https://www.luogu.org/problemnew/show/P3950 1.像我这种学数据结构学傻了的 2.边权化点权 所有点权初始化0 3.对于战争 将深度较深的-1,对于 ...