python数据比对怎么做,python 比对文件内容

大家好,小编为大家解答python文件对比结果生成txt文件的问题。很多人还不知道python数据比对怎么做,现在让我们一起来看看吧!

目标

通过业务监控模块的学习,更好的保障服务的稳定运行

业务监控模块监控方式

手工方式 - 系统命令,脚本命令 监控工具 - Cacti、Nagios、Zabbix、Prometheus、等等 监控平台 - 阿里云、华为云、等等

业务监控模块主要内容

文件内容差异对比 - 配置级别的变动 文件目录差异对比 - 文件级别的变动 电子邮件发送通知 - 变动后的通知应急 探测web服务质量 - 网站的访问效果

业务监控之文件对比

字符比对
基本语法

系统命令 diff - 比对文件内容是否一致 模块介绍 difflib – 实现字符串的差异对比,然后以版本控制风格进行输出

操作思路 1 传递文件内容,然后进行简单的行切割 2 创建Differ对象 3 在Differ对象的基础上,借助于compare方法将两个内容进行比较 4 结果以join的方式进行展示

注意:difflib模块自带,无需安装,可直接导入使用

简单实践
'''
字符对比 difflib
'''
import difflib

text1 = "ni hao a wo shi shui shui shui ni huan ying wo ma"
text2 = "ni hao A wo shi Shui shui shui ni huan ying wo ma"

text1_line = text1.splitlines()
text2_line = text2.splitlines()

# 3 文件内容比较
# 3-1 创建Differ对象
differ_object = difflib.Differ()

# 3-2 使用compare方法比较内容
diff_result = differ_object.compare(text1_line,text2_line)
# 3-3 拼接比较后的效果
result_message = "\n".join(diff_result)
print("字符对比结果:\n{}".format(result_message))

结果

字符对比结果:
- ni hao a wo shi shui shui shui ni huan ying wo ma
?        ^        ^

+ ni hao A wo shi Shui shui shui ni huan ying wo ma
?        ^        ^
格式比对1
基础知识

简介: HtmlDiff()类的make_file()方法 – 生成美观的HTML文档

操作步骤: 1 传递文件内容,然后进行简单的行切割 2 创建Differ对象 3 在Differ对象的基础上,借助于compare方法将两个内容进行比较 4 直接查看生成的对比文件即可

对比效果: 1 颜色 2 统计

简单实践1
'''
字符对比 difflib
'''
import difflib

text1 = """ni hao a
wo shi shui shui shui ni
huan ying wo ma"""
text2 = """ni hao A   
        wo shi Shui shui shui 
        ni huan ying wo ma"""

text1_line = text1.splitlines()
text2_line = text2.splitlines()

# 3 文件内容比较
# 3-1 创建Differ对象
differ_object = difflib.HtmlDiff()
# 3-2 使用compare方法比较内容
diff_result = differ_object.make_file(text1_line,text2_line)
# 3-3 拼接比较后的效果
# print(diff_result)
with open("","w") as file:
    file.write(diff_result)

打开,结果

简单实践2

以表格样式进行查看

'''
字符对比 difflib
'''
import difflib

text1 = """ni hao a
wo shi shui shui shui ni
huan ying wo ma"""
text2 = """ni hao A   
        wo shi Shui shui shui 
        ni huan ying wo ma"""

text1_line = text1.splitlines()
text2_line = text2.splitlines()

# 3 文件内容比较
# 3-1 创建Differ对象
differ_object = difflib.HtmlDiff()
# 3-2 使用compare方法比较内容
diff_result = differ_object.make_table(text1_line,text2_line)
# 3-3 拼接比较后的效果

with open("","w") as file:
    file.write(diff_result)

打开html文件,结果

配置实践
实践需求

需求: 读取多个配置文件,通过HtmlDiff方式 比对文件的内容区别 操作思路: 1 准备两个Nginx软件配置文件 2 分别读取两个配置文件 3 读取内容 4 文件内容为空的基本判断 5 内容的比较 6 结果的输出

实践代码

准备两个配置文件 ngnix.conf1

server{
    listen 80;
    server_name ;
    location / {
        root /var/www/html;
        index ;
        try_files $uri $uri/ = 404;
    }
}

ngnix.conf2

server{
    listen 88;
    server_name ;
    location / {
        root /var/www/html;
        index ;
        try_files $uri $uri/ = 404;
    }
}

测试代码

import difflib
import sys

# 1 准备两个Nginx软件配置文件
# 2 分别读取两个配置文件
# argv -- 命令行;argv[0] 脚本名,argv[1]是第一个参数,以此类推
try:
    textfile1 = [1]
    textfile2 = [2]
except Exception as e:
    print("报错信息如下:{}".format(e))
    print("使用方式:_name filename1 filename2")
    ()
# 3 读取内容
def readfile(filename):
    try:
        with open(filename,"r") as f:
            text = f.read().splitlines()
            return text
    except Exception as error:
        print("读取文件错误:{}".format(error))
        ()
# 4 文件内容为空的基本判断
if textfile1 == "" or textfile2 =="":
    print("脚本的参数不允许为空,请检查")
    print("使用方式:_name filename1 filename2")
    ()
# 5 内容的比较
# 5-1 读取文件
text1_line = readfile(textfile1)
text2_line = readfile(textfile2)
# 5-2 创建Htmldiff对象
diff_object = difflib.HtmlDiff()
# 5-3 对文件进行比较
diff_result = diff_object.make_file(text1_line,text2_line)
# 6 结果的输出
with open('','w') as f:
    f.write(diff_result)

注意: 在虚拟环境中,创建文件和操作文件需要对应的权限宿迁趣品网络。 sudo touch sudo chown python.python ./* 正常的对比测试: 异常对比测试 - 参数不够 异常对比测试 - 文件无法读取 异常对比测试- 传递参数为空

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值