iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python中的difflib
  • 285
分享到

python中的difflib

pythondifflib 2023-01-31 02:01:45 285人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

#############difflib##############文件差异对比示例1:import difflibtext1 = 'hello westos'text2 = 'hello zhan'text1_lines = text1.


#############difflib##############

文件差异对比

示例1:

import difflib

text1 = 'hello westos'

text2 = 'hello zhan'

text1_lines = text1.splitlines()

text2_lines = text2.splitlines()

# 创建diff对象

d = difflib.Differ()

# 采用compare方法对字符串进行比较

diff = d.compare(text1_lines, text2_lines)

# print list(diff)

print '\n'.join(list(diff))

 

 

text1='''root:x:0:wfew0:root:/root:/bin/bash

bin:x:1fw:1:bin:/bin:/sbwefwin/nologin

daemon:xw:2:2:daefwmon:/sbin:/sbin/nologin

adm:x:3:4:adwfwfm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

synsfwfsc:x:5:0:sync:/sbin:/bin/sync

shautdowfwfwn:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

'''

text2='''rot:x:0:0:root:/root:/bin/bash

bin:x:1:1:bi:/bin:/sbin/nologindaem

on:x:2:2:daemon:/sbin:/sbin/login

adm:x:3:4:adm:var/adm:/sbin/nolog

lp:x:4:7:lp:/var/spool/lpd:/sbin/nolo

GISync:x:5:0:sync:/sbin:/bin/sync

utdown:x:6:0:shtdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

'''

第一种方法

import difflib

text1_lines=text1.splitlines()

text2_lines=text2.splitlines()

d=difflib.Differ()

a=d.compare(text1_lines,text2_lines)

a=list(a)

print '\n'.join(a)

 

测试

 wKiom1ls6IuQ0FR_AAA8yMlrvS0845.png-wh_50

第二种方法

import difflib

text1_lines=text1.splitlines()

text2_lines=text2.splitlines()

# d=difflib.Differ()

# a=d.compare(text1_lines,text2_lines)

# a=list(a)

# print '\n'.join(a)

d=difflib.htmlDiff()

htmldata=d.make_file(text1_lines,text2_lines)

with open('/root/Desktop/data.html','a+') as f:

    f.write(htmldata)

 

 

测试:

 wKioL1ls6JjQpzE_AAD173e4ol4979.png-wh_50

 

文件差异对比

'-' 包含在第一个中,但不包含在第二个中

'+' 包含在第二个中,但不包含在第一个中

' ' 两者相同

'?' 两个存在增量差异

'^' 标志出两者行存在的差异字符


 


--结束END--

本文标题: python中的difflib

本文链接: https://www.lsjlt.com/news/185281.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python中的difflib
    #############difflib##############文件差异对比示例1:import difflibtext1 = 'hello westos'text2 = 'hello zhan'text1_lines = text1....
    99+
    2023-01-31
    python difflib
  • Python 自动化运维 difflib
     1.功能:对比文件差异 2.对比两个字符的差异生成对比HTML格式文档,将结果输入到HTML文件,用浏览器打开单文件对比多文件对比  输出格式 ( [ 匹配 ],[ 不匹配 ],[ 错误 ] )...
    99+
    2023-01-31
    Python difflib
  • Python利用difflib比较字符串
    #!/usr/bin/python # -*- coding:utf-8 -*- import difflib file1 = file("my.txt","r") file2 = file("new.txt","r")...
    99+
    2023-01-31
    字符串 Python difflib
  • python使用difflib对比文件示
    使用difflib模块对比文件内容1  示例:字符串差异对比 vim duibi.py#!/usr/bin/env python # -*- coding: utf-8 -*- import re import os import diff...
    99+
    2023-01-31
    文件 python difflib
  • [Python ] python中文件的
    原文地址: http://blog.163.com/qimeizhen8808@126/ 这女孩写的挺好,有值得学习的地方。   1) 文件的打开和创建,关闭  a)文件的打开和创建 主要有两个open()和file()两个方法。它们的功能...
    99+
    2023-01-31
    文件 Python python
  • python中的whitespace
    python中strip()和split()在无参数的情况下使用whitespace做为默认参数,在帮助文档中对whitespace的解释为6个字符,它们是space, tab, linefeed, return, formfeed, an...
    99+
    2023-01-31
    python whitespace
  • python中的&&及||
    首先说明一下,在python中是没有&&及||这两个运算符的,取而代之的是英文and和or。其他运算符没有变动。  接着重点要说明的是python中的a.any(),我之所以会涉及到这个函数,是因为我在设计某个分段数值函数...
    99+
    2023-01-31
    python
  • python中的input
    python中的input()方法是在控制台可以自己输入数据 比如 :定义变量a = 2 现在可以写成 a = input() 可以自己输入变量a的值 注意:input()返回的值是str字符型的 如果要让输入的数字变为整形,可以使用i...
    99+
    2023-01-31
    python input
  • python中的asyncore
    在Python中,既可直接使用socket类,也可使用socketserver,asyncore等经过封装的类来进行编码。asyncore这个库中主要包含了两个函数:asyncore.loop([timeout[, use_poll[, m...
    99+
    2023-01-31
    python asyncore
  • python中的类
    关键字:class含义:带有某些属性和方法的一个集合,可以理解成模板。 object的概念:类的实例。以对应类为模板,创建出来的对象。 如何理解python中的self?1 实例本身,对象。2 可以理解为一个字典变量,内部存的就是对象的数据...
    99+
    2023-01-31
    python
  • python中的__enter__ __
    我们前面文章介绍了迭代器和可迭代对象,这次介绍python的上下文管理。在python中实现了__enter__和__exit__方法,即支持上下文管理器协议。上下文管理器就是支持上下文管理器协议的对象,它是为了with而生。当with语...
    99+
    2023-01-30
    python
  • Python中的bytes
    bytes_lst = [   ('创建bytes',),   ('bytes可哈希',),   ('编码与解码',),   ('常见编码类型',),   ('ord() 与 chr()',), ]   创建bytes   &g...
    99+
    2023-01-30
    Python bytes
  • Python中的defaultdict
    字典(dictionary)是Python中一种常用的数据类型。不同于其他由数字索引的序列,字典是用"键"(key)来索引的。通常表示为dict(key: val, ...),有以下特征: 键可以是任何不可变(immutable)数据类...
    99+
    2023-01-31
    Python defaultdict
  • python中的import
    python中的import操作有点类似于C语言中的#include,但又有很大的不同。在c语言中,#include是编译前将另一个文件包含进当前文件中。在python中导入并非只把一个文件文本插入另一个文件而已。导入其实是运行时的运算,程...
    99+
    2023-01-31
    python import
  • Python中的dict
    # dict # Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 d = {'Michael': 95, 'Bob': 75,...
    99+
    2023-01-31
    Python dict
  • python中的logging
    python logging模块可能会令人困惑的地方通过参阅python logging模块的代码,发现一些有趣的现象: 1. logging对象其实是一个树形结构,每个创建的logging对象都是root logging对象的孩子结点。当...
    99+
    2023-01-31
    python logging
  • python中的struct
    我们知道python只定义了6种数据类型,字符串,整数,浮点数,列表,元组,字典。但是C语言中有些字节型的变量,在python中该如何实现呢?这点颇为重要,特别是要在网络上进行数据传输的话。python提供了一个struct模块来提供转换。...
    99+
    2023-01-31
    python struct
  • python中的setdefaulten
      http://blog.csdn.net/magicharvey/article/details/20055949 主题 Python #!/usr/bin/env python #encoding: utf-8 ...
    99+
    2023-01-31
    python setdefaulten
  • python中的rabbitmq
    RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写...
    99+
    2023-01-30
    python rabbitmq
  • Python中的threading
    #!/usr/bin/env python# -*- coding: utf-8 -*-import threading, time#新线程执行的代码:def loop():    print('thread %s is running.....
    99+
    2023-01-31
    Python threading
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作