一、difflib文件对比

1、观察对比法

代码块:

text1 = '''  1. Beautiful is better than ugly.2. Explicit is better than implicit.3. Simple is better than complex.4. Complex is better than complicated.'''.splitlines(keepends=False)
print(text1)text2 = '''  1. Beautiful is better than ugly.3.   Simple is better than complex.4. Complicated is better than complex.5. Flat is better than nested.'''.splitlines(keepends=True)print(text2)

程序及运行结果:

2、difflib文件对比

代码块:

import difflibtext1 = '''  1. Beautiful is better than ugly.2. Explicit is better than implicit.3. Simple is better than complex.4. Complex is better than complicated.'''.splitlines(keepends=False)text2 = '''  1. Beautiful is better than ugly.3.   Simple is better than complex.4. Complicated is better than complex.5. Flat is better than nested.'''.splitlines(keepends=True)d = difflib.Differ()
print(''.join(d.compare(text1,text2)))

程序及运行结果:

3、difflib通过html输出的方式对比

代码块:

import difflibtext1 = '''  1. Beautiful is better than ugly.2. Explicit is better than implicit.3. Simple is better than complex.4. Complex is better than complicated.'''.splitlines(keepends=False)text2 = '''  1. Beautiful is better than ugly.3.   Simple is better than complex.4. Complicated is better than complex.5. Flat is better than nested.'''.splitlines(keepends=True)d = difflib.HtmlDiff()
htmlContent = d.make_file(text1,text2)
print(htmlContent)

程序及运行结果:

4、通过网页方式展示其不同

代码块:

import difflibtext1 = '''  1. Beautiful is better than ugly.2. Explicit is better than implicit.3. Simple is better than complex.4. Complex is better than complicated.'''.splitlines(keepends=False)text2 = '''  1. Beautiful is better than ugly.3.   Simple is better than complex.4. Complicated is better than complex.5. Flat is better than nested.'''.splitlines(keepends=True)d = difflib.HtmlDiff()
htmlContent = d.make_file(text1,text2)
with open('diff.html','w') as f:f.write(htmlContent)

程序及运行结果:

此时,左边会出现一个diff.html的文件,我们打开文件,如图所示:

接下来,点击任意一个浏览器,则会调转到文件对比的页面,如下所示:

二、Linux文件对比

1、对比/tmp/passwd和/tmp/passwd1的文件区别

代码块:

import difflibfilename1 = '/tmp/passwd'
filename2 = '/tmp/passwd1'with open(filename1) as f1,open(filename2) as f2:content1 = f1.read().splitlines(keepends=True)content2 = f2.read().splitlines(keepends=True)d = difflib.HtmlDiff()
htmlContent = d.make_file(content1,content2)with open('passwdDiff.html','w') as f:f.write(htmlContent)

程序及运行结果:

Python中的文件对比(difflib文件对比、Linux文件对比)相关推荐

  1. python中newfile是干嘛用的_python 文件操作方法

    python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目 ...

  2. python怎么安装打开文件不存在怎么办呢_如果文件不存在,Python中的open()不会创建文件...

    16 个答案: 答案 0 :(得分:712) 您应该open使用w+模式: file = open('myfile.dat', 'w+') 答案 1 :(得分:112) 以下方法的优点是,即使在路上引 ...

  3. python中f点flush是什么函数_Python文件操作及内置函数flush原理解析

    1.打开文件得到文件句柄并赋值给一个变量 2.通过句柄对文件进行操作 3.关闭文件 示例文件 '你好呀' 我是于超 嗯 再见 文件操作基本流程 f=open('chenli',encoding='ut ...

  4. python中字典不自动排序/删除指定类型文件/执行可执行文件的返回值

    1.python 字典的用法 from collections import OrderedDict dict =OrderedDict() dict['foo']=3 dcit['aol']=1 2 ...

  5. python中集合运算_Python—集合的操作、文件的操作

    1.集合的操作 1.集合的操作 定义: 1.不同元素组成,自动去重 2.无序 3.集合中的元素必须是不可变类型 1.集合的定义: 1>>> s1 = set('abcd') #同s1 ...

  6. python中gettext文件格式_如何将gettext .mo文件转换为.po文件 - python

    Improve this question 当.po文件不再可用时,有什么方法可以将.mo文件转换为.po文件源?我需要编辑.mo文件的内容,但没有.po文件.可能吗? 参考方案 msgunfmt [ ...

  7. python中的数据写入与添加数据写入文件(to_csv)

    很多情况下,大家可能会遇到相同情况,就是现在有一些数据需要保存在某个文件里面,但是后续会不断更新添加新的数据,例如在爬虫的时候,一页一页爬取数据的时候,当然可以将所有页数据先合并到一起,再保存起来,但 ...

  8. Python中使用print,每次输出数据到文件时,记录当前输出时间,数据序号加一

    在将数据写入文件时,有时需要将数据标号,每次记录时让标号递增.本文思路是新建一个用于标号数据的文本文件,每次运行程序时调用里面的数据,加一后再将数据写入文件. 具体代码如下: import time ...

  9. python中 .py .pyc .pyw .pyo .pyd各后缀文件区别

    转载自:https://www.cnblogs.com/deadwood-2016/p/8143351.html .py 文件 以 .py 作扩展名的文件是 Python 源代码文件,由 python ...

  10. Linux中文件节点标志,6种Linux文件类型

    众所周知,在Linux 中一切皆为文件,包括硬盘和显卡等.在 Linux 系统中,大部分的文件都是普通文件和目录文件.但是也有其他的文件类型,发挥着不同的作用.因此,理解Linux文件类型在许多方面都 ...

最新文章

  1. Pycharm开发环境设置与熟悉。
  2. ACE线程管理机制-并发控制
  3. 数据挖掘工具软件Weka学习教程
  4. html点击关闭代码,怎样开放和关闭html代码?
  5. 家里在一二线城市有很多套房是什么体验?答案太颠覆!
  6. 《成为顶级JAVA架构师的必备书籍》
  7. strstr不区分大小写_Excel find 函数竟然还能这么用!奖金梯次计算,连 if 都不需要...
  8. HDU 2814 斐波那契循环节 欧拉降幂
  9. 使用RegularExpressionValidator验证(转)
  10. IE8 默认以Web Standards模式显示网页 全面遵循Web标准
  11. protocol buffer安装及使用(非常详细)
  12. 手工清除severe.exe病毒
  13. Linux安装redis最详细的教程
  14. 四元数与欧拉角的相互转换
  15. 渗透测试工程师的Linux学习之路
  16. 搜索引擎和知识图谱那些事
  17. 关于树莓派DSI屏幕触摸不准的问题
  18. 关于MacBook蓝牙键盘鼠标耳机音响等设备各种的卡顿问题
  19. pku1905 Expanding Rods
  20. PHP脚本中的两种换行符的区别

热门文章

  1. 深度学习工作笔记002---曼哈顿距离_欧氏距离
  2. JAVA面试要点008---HashMap、Hashtable、ConcurrentHashMap的原理与区别_ConcurrentHashMap原理
  3. web开发 java如何连接数据库并取得数据,实现 增,删,改,查
  4. 嵌入式电路设计(电路仿真)
  5. 怎么切换java版本吗_Java切换JDK版本的方法及技巧
  6. ip受限 linux_从linux源码看epoll及epoll实战揭秘
  7. axure如何竖立文字_AXURE教程:中继器实现穿梭框功能
  8. ❤️DDOS攻击详解❤️——万物互联时代的巨大威胁!安全领域最棘手的问题之一
  9. 深入分析Nginx 502 Bad Gateway和Nginx 504 Gateway Time-out
  10. R 梯度提升算法①