分享

python脚本比较两个文件的差异内容

 wenxuefeng360 2022-07-02 发布于四川

 使用python脚本比较两个文件的差异内容并输出到html文档中,可以通过浏览器打开查看。

  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. """
  4. 1.difflib的HtmlDiff类创建html表格用来展示文件差异,通过make_file方法
  5. 2.make_file方法使用
  6. make_file(fromlines, tolines [, fromdesc][, todesc][, context][, numlines])
  7. 用来生成一个包含表格的html文件,其内容是用来展示差异。
  8. fromlines和tolines,用于比较的内容,格式为字符串组成的列表
  9. fromdesc和todesc,可选参数,对应的fromlines,tolines的差异化文件的标题,默认为空字符串
  10. context 和 numlines,可选参数,context 为True时,只显示差异的上下文,为false,显示全文,numlines默认为5,
  11. 当context为True时,控制展示上下文的行数,当context为false时,控制不同差异的高亮之间移动时“next”的开始位置
  12. 3.使用argparse传入两个需要对比的文件
  13. """
  14. import difflib
  15. import argparse
  16. import sys
  17. # 创建打开文件函数,并按换行符分割内容
  18. def readfile(filename):
  19. try:
  20. with open(filename, 'r') as fileHandle:
  21. text = fileHandle.read().splitlines()
  22. return text
  23. except IOError as e:
  24. print("Read file Error:", e)
  25. sys.exit()
  26. # 比较两个文件并输出到html文件中
  27. def diff_file(filename1, filename2):
  28. text1_lines = readfile(filename1)
  29. text2_lines = readfile(filename2)
  30. d = difflib.HtmlDiff()
  31. # context=True时只显示差异的上下文,默认显示5行,由numlines参数控制,context=False显示全文,差异部分颜色高亮,默认为显示全文
  32. result = d.make_file(text1_lines, text2_lines, filename1, filename2, context=True)
  33. # 内容保存到result.html文件中
  34. with open('result.html', 'w') as resultfile:
  35. resultfile.write(result)
  36. # print(result)
  37. if __name__ == '__main__':
  38. # 定义必须传入两个参数,使用格式-f1 filename1 -f2 filename
  39. parser = argparse.ArgumentParser(description="传入两个文件参数")
  40. parser.add_argument('-f1', action='store', dest='filename1', required=True)
  41. parser.add_argument('-f2', action='store', dest='filename2', required=True)
  42. given_args = parser.parse_args()
  43. filename1 = given_args.filename1
  44. filename2 = given_args.filename2
  45. diff_file(filename1, filename2)

本来想自己写一个的,简单搜了一下,这个博主写的,刚好可以实现 ,因为以前关注的文章有些可能会找不到了,转载记录一下

转自:python比较两个文件的差异【图文】_hnr1017_51CTO博客

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多