专栏首页快学Python2行Python就能实现 "文本文件" 差异比较,太强了!

2行Python就能实现 "文本文件" 差异比较,太强了!

人生苦短,快学Python!

比如,我们在过去的某个时候写了一段代码。后来,我们由于业务需求,对代码做了部分改动。一段时间过去了,我们想不起来这段代码,究竟改动了哪里?

此时,本文讲述的这个功能,很好的帮助我们解决了这个问题。

这个功能属于filestools库系列功能中,另外一个超级好用的功能。

前面,我写了一篇文章2行Python给图片加水印,太强了!,关于filestools库的安装说明,大家可以参考上述文章。

进行文本文件差异比较,我们需要提前导入如下库的file_diff_compare方法:

from filediff.diff import file_diff_compare

关于这个方法的使用说明,可以先了解一下。

file_diff_compare(file1, file2, diff_out='diff_result.html', max_width=70, numlines=0, show_all=False, no_browser=False)

file_diff_compare方法一共有7个参数,对这7个参数,分别介绍如下:

  • file1 / file2:待比较的两个文件,必须文本文件;
  • diff_out:差异结果保存的文件名(网页格式),默认值diff_result.html;
  • max_width:每行超过多少字符,就自动换行,默认值70;
  • numlines:在差异行基础上,前后显示多少行,默认是0;
  • show_all:只要设置这个参数就表示显示全部原始数据,默认不显示全部;
  • no_browser:设置这个参数,在生成结果后,不会自动打开游览器。当设置为False后,会自动打开浏览器;

接下来,用一个案例为大家实现文本文件差异比较的效果。

例如:曾经有一个a.txt文件,经过一段时间后,我对其中的内容做了修改,得到了最后的b.txt。

注明:此时这个文本文件内容很少,你用眼睛都可以看出哪里改动了,如果内容超级多呢?

操作很简单,2行代码就可以搞定。

from filediff.diff import file_diff_compare
file_diff_compare("a.txt", "b.txt")

此时,会在你的当前工作环境下,生成一个html网页文件。

双击打开,看看里面有啥!

我们分别为大家讲述图中3个单词的含义:

  • 黄色表示改动过的内容;
  • 绿色表示新添加过的内容;
  • 红色表示已经删除过的内容;

关于file_diff_compare方法,还有两个好用的参数,我们一起来看看吧。

1. show_all参数

只要设置这个参数就表示显示全部原始数据,默认不显示全部。

file_diff_compare("a.txt", "b.txt", show_all=True)

结果如下:

2. no_browser参数

设置这个参数,在生成结果后,不会自动打开游览器。当设置为False后,会自动打开浏览器。

file_diff_compare("a.txt", "b.txt", no_browser=False)

此时,系统会自动打开浏览器文件,省时省力!

如果你想详细学习filestools库,参考下方网站:

https://pypi.org/project/filestools/

本文分享自微信公众号 - 快学Python(kxpython),作者:黄伟呢

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-08-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python 和 Ruby 的对比

    最近在考虑学习一门后端语言,在ruby和python直接犹豫,然后自己做了一些对比,希望能帮到有同样问题的你。

    用户7886150
  • 知乎“看山杯”夺冠记

    比赛介绍 这是一个文本多分类的问题:目标是 “参赛者根据知乎给出的问题及话题标签的绑定关系的训练数据,训练出对未标注数据自动标注的模型”。通俗点讲就是:当用户在...

    朱晓霞
  • rMATS这款差异可变剪切分析软件的使用体验

    rMATS最近刚现在出了rMATS 4.0.1版,相比之间的rMATS 3.2.5版,其用C,Python,Cython重写了该软件,运算速度提升了100倍,并...

    生信技能树
  • Python语言与其他语言对比

    python作为一门高级编程语言,它的诞生虽然很偶然,但是它得到程序员的喜爱却是必然之路,以下是Python与其他编程语言的优缺点对比:

    py3study
  • AI全自动钓鱼,原神游戏沦陷!

    就在今年 9 月,这款从开放公测起便屡次登顶国内外讨论热度和手游吸金榜第一的开放世界冒险游戏更新了版本,添加 / 丰富了地图,并且上线了一款小游戏——钓鱼。游戏...

    大数据文摘
  • Linux下9种优秀的代码比对工具推荐小结

    在我们编写代码的时候,我们经常需要知道两个文件之间,或者同一个文件不同版本之间有什么差异性。在 Windows 下有个很强大的工具叫作 BeyondCompar...

    砸漏
  • 初入门径的Data Miner

    本文是作者在赤兔APP“数据挖掘”小组内在线分享的记录。 分享主题:初入门径的Data Miner 分享时间:2016年4月14日晚8:00-9:00 分享地点...

    叶锦鲤
  • AI 学习之路——轻松初探 Python 篇(一)

    这是「AI 学习之路」的第 1 篇,「Python 学习」的第 1 篇 前言 1. Python 篇的组织结构 不管是学习人工智能还是大数据,Python 都是...

    小之丶
  • TensorFlow与主流深度学习框架对比

    TensorFlow是相对高阶的机器学习库,用户可以方便地用它设计神经网络结构,而不必为了追求高效率的实现亲自写C++或CUDA代码。它和Theano一样都支持...

    博文视点Broadview
  • Python3 与 C# 并发编程之~ 上篇

    其实逆天现在Coding已经是80%变成Python了,20%才是Net,也不确定是否一直在Net界干下去,所以只能尽可能的在说新知识的同时,尽量把脑子里面Ne...

    逸鹏
  • C++、Python、Rust、Scala 构建编译器的差异性究竟有多大?

    我在滑铁卢大学的最后一个学期选了CS444:编译原理这门课程,课程项目是编写一个编译器,将Java语言的子集编译成x86代码,三人结组,语言自由选择。

    Python猫
  • Python后端技术栈(一)

    Happiness is a way of travel. Not a destination.

    小闫同学啊
  • 用Python实现CRUD功能REST服

    最近内部需要实现一个新的HTTP REST服务,数据用JSON。打算用Python来做一个原型,用于比较和Java实现方案的具体差异,以前也没有Python实战...

    py3study
  • Python的历史与优缺点整理

    1989年圣诞节:Guido von Rossum开始写Python语言的编译器。1991年2月:第一个Python编译器(同时也是解释器)诞生,它是用C语言实...

    砸漏
  • 如何霸占跳一跳好友排行榜第一?

    由于这款游戏耐玩性、有趣性很高,拥有免下载安装,用完即走的强大特性。最重要的是可以实时好友排名,因此在诞生的短短几日里就风靡朋友圈。 看着好友排名里面一个比一个...

    爱吃西瓜的番茄酱
  • 全网最全数据分析师干货-python篇

    Pickle模块读入任何Python对象,将它们转换成字符串,然后使用dump函数将其转储到一个文件中——这个过程叫做pickling。反之从存储的字符串文件中...

    AI研习社
  • 数据分析该怎么入门,一名合格的数据分析师该具备什么哪些技能?

    当然对于数据分析师,技术也是非常重要的,目前互联网公司每天收到的打点数据(记录用户的点击,浏览等行为)一般都是GB甚至TB级别的,如果说你只会用Excel,肯定...

    Awesome_Tang
  • 我的5年Python7年R,述说她们的差异在哪里?

    首次接触R语言是在2012年读研的时候,有一门课程是统计分析与R语言,清晰地记得期末考试时,由于把答案给同学抄,最终落了个重考的后果(重考92分)。那个时候真的...

    1480
  • MySQL代码开发和调试利器CLion

    2)基于源码安装MySQL,从cmake开始,基本要被bison,curces,boost折腾一波

    jeanron100

扫码关注云+社区

领取腾讯云代金券