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自动化运维_文件内容差异对比分析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Python自动化运维和部署项目工具Fabric使用实例

    Fabric 是使用 Python 开发的一个自动化运维和部署项目的一个好工具,可以通过 SSH 的方式与远程服务器进行自动化交互,例如将本地文件传到服务器,在服务器上执行shell 命令. 下面给出一个自动化部署 Django 项目的例子 # -*- coding: utf-8 -*- # 文件名要保存为 fabfile.py from __future__ import unicode_literals from fabric.api import * # 登录用户和主机名: env.use

  • 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.

  • Python自动化运维之Ansible定义主机与组规则操作详解

    本文实例讲述了Python自动化运维之Ansible定义主机与组规则操作.分享给大家供大家参考,具体如下: 一 点睛 Ansible通过定义好的主机与组规则(Inventory)对匹配的目标主机进行远程操作,配置规则文件默认是/etc/ansible/hosts. 二 定义主机与组 所有定义的主机与组规则都在/etc/Ansible/hosts文件中,为ini文件格式,主机可以用域名.IP.别名进行标识,其中webservers.dbservers 为组名,紧跟着的主机为其成员.格式如下: ma

  • python自动化运维之Telnetlib的具体使用

    目录 前言: 1.导入telnetlib库可以直接使用. 2.配置服务器.用户名.密码,cmd命令等 3.功能函数 前言: 远程连接中兴设备(系统使用的中兴网卡)时使用的事Telnet连接,连接时设有二次验证,每次输入用户名密码和执行命令是个繁琐的过程,使用Python自带的telnetlib库可以编写脚本,实现批量登录服务器并执行命令查询数据量. 1.导入telnetlib库可以直接使用. from telnetlib import Telnet 2.配置服务器.用户名.密码,cmd命令等 #

  • Python自动化办公之Word文件内容的读取

    目录 前言 利用 python 批量读取文件 word利器之python-docx python-docx 安装 python-docx 之 Document python-docx 之段落内容读取 python-docx 之表格内容读取 前言 前面几个章节我们学习了对于普通文件的操作,比如说文件的创建.复制粘贴.裁剪粘贴.文件名的重命名.删除等等.另外还学习了一些基本练习,如何查找文件.如何按照内容查找文件等等. 在本章节及后续,将开始学习一些特殊文件的自动化相关操作.如 word.excel

  • python调用DLL与EXE文件截屏对比分析

    目录 一.对比如下 二.综合选择 三.其它说明 想弄个截屏工具,整理一下学生错题什么的,原来用的方法是:先运行QQ,再监听键盘热键("ctrl+alt+a").后来发现有些问题:需要先上QQ,不能单独实现:监听时挂起, 查看增加了多个线程:键盘鼠标同时监听有难度,时间进度不好把握.现附加一个DLL文件,实现随时调用.网上查了一把,找到了几个可用文件. 一.对比如下 1.txgymailcamera.dll,文件大小:256K,界面友好,无放大镜. 2.cameradll.dll,文件大

  • Python自动化运维之IP地址处理模块详解

    实用的IP地址处理模块IPy 在IP地址规划中,涉及到计算大量的IP地址,包括网段.网络掩码.广播地址.子网数.IP类型等 别担心,Ipy模块拯救你.Ipy模块可以很好的辅助我们高效的完成IP的规划工作. 功能:辅助我们高效的完成IP的规划工作 安装: wget https://pypi.python.org/packages/source/I/IPy/IPy-0.81.tar.gz --no-check-certificate tar -zxvf Ipy-0.81.tar.gz cd IPy-

  • 浅谈python之自动化运维(Paramiko)

    简介 使用开源的Paramiko,我们就可以用Python代码中通过SSH协议对远程服务器执行操作,不需要手敲ssh命令,从而实现自动化运维. ssh是一个协议,OpenSSH是其中一个开源实现,paramiko库,实现了SSHv2协议(底层使用cryptography). 项目文档:点我跳转 扩展:ssh协议,OpenSSH 上手 1.安装 pip install paramiko 2.导入模块 import paramiko 3.使用 def initSshClinet(): ''' 初始化

  • python ansible自动化运维工具执行流程

    ansible 简介 ansible 是什么? ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能. ansible是基于 paramiko 开发的,并且基于模块化工作,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.ansible不需要在远程主机上安装client/agents,因为它们是基于ssh来

  • python开发的自动化运维工具ansible详解

    目录 ansible 简介 ansible 是什么? ansible 特点 ansible 架构图 ansible 任务执行 ansible 任务执行模式 ansible 执行流程 ansible 命令执行过程 ansible 配置详解 ansible 安装方式 使用 pip(python的包管理模块)安装 使用 yum 安装 ansible 程序结构 ansible配置文件查找顺序 ansible配置文件 ansuble主机清单 ansible 常用命令 ansible 命令集 ansible

  • 实用自动化运维Python脚本分享

    并行发送sh命令 pbsh.py #!/usr/bin/python # -*- coding: UTF-8 -*- import paramiko import sys import threading #Copy local file to remote server. def sshclient_scp(hostname, port, username, password, local_path, remote_path): t = paramiko.Transport((hostname

随机推荐