Python自动化运维_文件内容差异对比分析

 更新时间:2017年12月13日 09:07:28   作者:Infi_chu  
下面小编就为大家分享一篇Python自动化运维_文件内容差异对比分析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

模块: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实现短网址ShortUrl的Hash运算实例讲解

    Python实现短网址ShortUrl的Hash运算实例讲解

    这篇文章主要介绍了Python实现短网址ShortUrl的Hash运算,较为详细的分析了Python短网址运算的算法原理与相关实现技巧,需要的朋友可以参考下
    2015-08-08
  • python代码实现ID3决策树算法

    python代码实现ID3决策树算法

    这篇文章主要为大家详细介绍了python代码实现ID3决策树算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • python脚本第一行如何写

    python脚本第一行如何写

    在本篇内容里小编给大家整理的是一篇关于python脚本第一行如何写相关文章,有需要的朋友们可以参考下。
    2020-08-08
  • python里反向传播算法详解

    python里反向传播算法详解

    在本篇文章了小编给大家整理的是一篇关于python里反向传播算法详解内容,有兴趣的朋友们可以学习下。
    2020-11-11
  • Python通过UDP传输超过64k的信息

    Python通过UDP传输超过64k的信息

    在UDP中,单个数据包的最大尺寸通常受到网络层的限制,这通常被称为最大传输单元(MTU),在以太网环境中,标准的MTU大小通常为1500字节,下面是一个Python示例,展示了如何通过UDP发送和接收超过64KB的数据,需要的朋友可以参考下
    2024-08-08
  • Python打包成exe的两种方法

    Python打包成exe的两种方法

    python的开发效率非常的高,但是当我们用python写一些小工具需要给用户使用的时候,用户大多数是没有安装python的,本文介绍两种python的打包方案,使用pyinstaller和nuitka打包成exe,文中通过代码示例介绍的非常详细,需要的朋友可以参考下
    2024-05-05
  • python非标准时间的转换

    python非标准时间的转换

    本文主要介绍了python非标准时间的转换,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • 使用Pytorch+PyG实现MLP的详细过程

    使用Pytorch+PyG实现MLP的详细过程

    图神经网络是最近 AI 领域最热门的方向之一,下面这篇文章主要给大家介绍了关于使用Pytorch+PyG实现MLP的详细过程,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • Python如何读取txt文件,获取指定行中指定位置数据

    Python如何读取txt文件,获取指定行中指定位置数据

    这篇文章主要介绍了Python如何读取txt文件,获取指定行中指定位置数据,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • pycharm如何使用anaconda中的各种包(操作步骤)

    pycharm如何使用anaconda中的各种包(操作步骤)

    这篇文章主要介绍了pycharm如何使用anaconda中的各种包,本文通过操作步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07

最新评论