Python difflib对比配置文件差异脚本

简介: !/usr/bin/pythonimport difflibimport systry:textfile1=sys.argv[1] #第一个配置文件路径参数textfile2=sys.

!/usr/bin/python

import difflib
import sys

try:
textfile1=sys.argv[1] #第一个配置文件路径参数
textfile2=sys.argv[2] #第二个配置文件路径参数
except Exception,e:
print "Error:"+str(e)
print "Usage: simple3.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('Read file Error:'+str(error))
sys.exit()

if textfile1=="" or textfile2=="":
print "Usage: simple3.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 simple3.py nginx.conf.v1 nginx.conf.v2 > diff.html

目录
相关文章
|
1月前
|
Python
十行python代码实现文件去重,去除重复文件的脚本
十行python代码实现文件去重,去除重复文件的脚本
19 1
|
3天前
|
Python Perl
LabVIEW调用Perl和Python脚本
LabVIEW调用Perl和Python脚本
|
5天前
|
缓存 人工智能 算法
编写高效的Python脚本:性能优化的策略与技巧
编写高效的Python脚本需要综合考虑多个方面,包括代码结构、数据结构和算法选择等。本文将探讨在Python编程中提高脚本性能的方法,包括优化数据结构、选择合适的算法、使用Python内置函数以及通过并行和异步编程提升效率。这些技巧旨在帮助开发者在不同应用场景中编写出高性能的Python代码。
|
14天前
|
存储 算法 Python
【亮剑】探讨了Python中查找两个字符串差异位置的方法
【4月更文挑战第30天】本文探讨了Python中查找两个字符串差异位置的方法。首先,通过内置函数和基本字符串操作,可以逐个字符比较找到第一个不同位置。其次,利用`difflib`库的`SequenceMatcher`能获取更详细的差异信息。最后,通过实现Levenshtein距离算法,可以计算字符串间的最小编辑距离。根据需求选择合适的方法,能提升代码效率和可读性。
|
15天前
|
存储 网络安全 数据安全/隐私保护
【专栏】Python 网络设备管理中,`ConnectHandler`(Paramiko库)和`telnetlib`模块常用于设备交互。
【4月更文挑战第28天】Python 网络设备管理中,`ConnectHandler`(Paramiko库)和`telnetlib`模块常用于设备交互。`ConnectHandler`简化SSH连接,便于与网络设备交互,而`telnetlib`是Python内置模块,支持Telnet协议的远程登录操作。两者都提供命令执行和响应接收功能。示例代码展示了如何使用它们获取防火墙设备的版本信息,降低了代码复杂度,提高了可读性和维护性。
|
15天前
|
网络安全 数据安全/隐私保护 Python
【专栏】如何使用 Python 编写脚本批量备份交换机配置
【4月更文挑战第28天】本文介绍如何使用 Python 编写脚本批量备份交换机配置。主要步骤包括了解交换机命令和接口,安装 `paramiko` 库,获取交换机登录信息。脚本实现分为建立 SSH 连接,执行备份命令并保存结果。示例脚本中,定义了 `backup_switch_config` 函数遍历交换机列表进行备份,每次备份后等待一段时间。此方法能有效提高网络管理效率。
|
19天前
|
缓存 NoSQL 关系型数据库
在Python Web开发过程中:数据库与缓存,MySQL和NoSQL数据库的主要差异是什么?
MySQL与NoSQL的主要区别在于数据结构、查询语言和可扩展性。MySQL是关系型数据库,依赖预定义的数据表结构,使用SQL进行复杂查询,适合垂直扩展。而NoSQL提供灵活的存储方式(如JSON、哈希表),无统一查询语言,支持横向扩展,适用于处理大规模、非结构化数据和高并发场景。选择哪种取决于应用需求、数据模型及扩展策略。
28 0
|
24天前
|
小程序 Python
Python基础之简单的小程序和小脚本
这个Python教程介绍了两个小程序。首先是一个账户管理类小程序,支持存款、取款和查询余额功能,确保金额始终保留两位小数。用户可以输入初始金额创建账户,并进行存取款操作。其次,是一个检查作业提交的脚本,它遍历指定目录,找出未提交作业(即没有对应ID文件)的学生ID。用户输入目录路径后,脚本会显示未提交作业的学生ID,如果所有人都提交了,则显示相应消息。
|
27天前
|
数据可视化 数据挖掘
Seaborn中的分类图:直观展示分类数据的差异
【4月更文挑战第17天】Seaborn是数据分析中的利器,尤其在展示分类数据差异方面。本文介绍了5种主要图表类型:1) 使用`barplot`创建条形图,便于比较不同分类的数值差异;2) `boxplot`生成箱线图,展示数据分布和离散程度;3) `stripplot`和`swarmplot`显示单个观测值分布,理解分类内变异性和差异;4) `scatterplot`结合`hue`参数,呈现分类在连续变量关系中的差异;5) 自定义分类图,调整样式以满足特定需求。通过这些图表,可以更深入地分析和传达分类数据的特性。
|
27天前
|
Python
Python脚本的两种实现
Python脚本的两种实现