• 实例Python对比两个word文档并找出不同


    首先确保已经有了安装包docx  与 difflib,如果没有先用pip命令安装如下

    pip install python-docx
    

     案例代码

    1. import docx
    2. import difflib
    3. import os
    4. '''在文件目录中存在两个待对比的word文档,必须是docx格式'''
    5. # 获取文档对象
    6. # path = input('请输入文件目录:')
    7. path = "对比word文档" #这是一个目录名字,与当前文件同级,有绝对路径也行
    8. path_file = os.listdir(path)
    9. print('----文档对比开始----','\n')
    10. print('识别文档:%s和文档%s' % (path_file[0], path_file[1]),'\n')
    11. file = docx.Document(path + "/" + path_file[0])
    12. file2 = docx.Document(path + "/" + path_file[1])
    13. print('----文档段落分析----','\n')
    14. print("%s共有%s个段落:" % (path_file[0], str(len(file.paragraphs))))
    15. print("%s共有%s个段落:" % (path_file[1], str(len(file2.paragraphs))),'\n')
    16. print('----文档区别分析----','\n')
    17. op = []
    18. op2 = []
    19. # 输出每一段的内容
    20. for para in file.paragraphs:
    21. op.append(para.text)
    22. for para1 in file2.paragraphs:
    23. op2.append(para1.text)
    24. diff = difflib.Differ()
    25. numbe = 0
    26. for d in range(len(op)):
    27. if op[d] != op2[d]:
    28. numbe += 1
    29. print('第%s不同' % (numbe))
    30. print('\n', path_file[0] + '的内容为:')
    31. print(' 文档1:' + op[d])
    32. print(path_file[1] + '的内容为:')
    33. print(' 文档2:' + op2[d], '\n')
    34. print('----------------------------------------------------')
    35. print('共有%s处不同' % (numbe))
    36. print('文档对比完毕!!!!!!!!')

    结果如下:

    1. ----文档对比开始----
    2. 识别文档:word文档A.docx和文档word文档B.docx
    3. ----文档段落分析----
    4. word文档A.docx共有9个段落:
    5. word文档B.docx共有11个段落:
    6. ----文档区别分析----
    7. 1不同
    8. word文档A.docx的内容为:
    9. 文档1
    10. word文档B.docx的内容为:
    11. 文档2:我们是中国人
    12. ----------------------------------------------------
    13. 共有1处不同
    14. 文档对比完毕!!!!!!!!
    15. 进程已结束,退出代码为 0

    该方法是按照段落进行对比的,对于表格不予处理。仅供大家学习使用

  • 相关阅读:
    linux 使用mail命令收发邮件
    武汉星起航:企业出海扩大影响力,良好的品牌建设是关键
    Leetcode刷题Day8-------------字符串
    Docker笔记
    Scipy和Numpy的插值对比
    海量数据去重的Hash与BloomFilter学习笔记
    【蓝桥杯选拔赛真题78】python电话号码 第十五届青少年组蓝桥杯python选拔赛真题 算法思维真题解析
    计算机网络第六章——应用层(下)
    Android热修复Sophix的使用
    Acwing 算法基础课 c++模板整理(附python语法基础题)
  • 原文地址:https://blog.csdn.net/xyh2004/article/details/139464305