51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2886|回复: 1
打印 上一主题 下一主题

[转贴] 两行Python就能实现“文本文件”差异比较,太强了!

[复制链接]
  • TA的每日心情
    擦汗
    1 小时前
  • 签到天数: 1047 天

    连续签到: 5 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2021-9-22 10:34:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    比如,我们在过去的某个时候写了一段代码。后来,我们由于业务需求,对代码做了部分改动。一段时间过去了,我们想不起来这段代码,究竟改动了哪里?
      此时,本文讲述的这个功能,很好的帮助我们解决了这个问题。
      这个功能属于filestools库系列功能中,另外一个超级好用的功能。
      进行文本文件差异比较,我们需要提前导入如下库的file_diff_compare方法:
    1. from filediff.diff import file_diff_compare
    复制代码
    关于这个方法的使用说明,可以先了解一下。

    1.  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后,会自动打开[url=]浏览器[/url]
      接下来,用一个案例为大家实现文本文件差异比较的效果。
      例如:曾经有一个a.txt文件,经过一段时间后,我对其中的内容做了修改,得到了最后的b.txt。

    注明:此时这个文本文件内容很少,你用眼睛都可以看出哪里改动了,如果内容超级多呢?
      操作很简单,2行代码就可以搞定。
    1. from filediff.diff import file_diff_compare  
    2.   file_diff_compare("a.txt", "b.txt")
    复制代码
    此时,会在你的当前工作环境下,生成一个html网页文件。

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

    我们分别为大家讲述图中3个单词的含义:
       ① 黄色表示改动过的内容;
       ②  绿色表示新添加过的内容;
       ③ 红色表示已经删除过的内容;
      关于file_diff_compare方法,还有两个好用的参数,我们一起来看看吧。
      1. show_all参数
      只要设置这个参数就表示显示全部原始数据,默认不显示全部。
    1.  file_diff_compare("a.txt", "b.txt", show_all=True)
    复制代码
    结果如下:

    2. no_browser参数
      设置这个参数,在生成结果后,不会自动打开游览器。当设置为False后,会自动打开浏览器。
    1.  file_diff_compare("a.txt", "b.txt", no_browser=False)
    复制代码
    此时,系统会自动打开浏览器文件,省时省力!





    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-15 10:58 , Processed in 0.067384 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表