首先确保已经有了安装包docx 与 difflib,如果没有先用pip命令安装如下
pip install python-docx
案例代码
- import docx
- import difflib
- import os
- '''在文件目录中存在两个待对比的word文档,必须是docx格式'''
- # 获取文档对象
- # path = input('请输入文件目录:')
- path = "对比word文档" #这是一个目录名字,与当前文件同级,有绝对路径也行
- path_file = os.listdir(path)
- print('----文档对比开始----','\n')
- print('识别文档:%s和文档%s' % (path_file[0], path_file[1]),'\n')
- file = docx.Document(path + "/" + path_file[0])
- file2 = docx.Document(path + "/" + path_file[1])
- print('----文档段落分析----','\n')
- print("%s共有%s个段落:" % (path_file[0], str(len(file.paragraphs))))
- print("%s共有%s个段落:" % (path_file[1], str(len(file2.paragraphs))),'\n')
- print('----文档区别分析----','\n')
- op = []
- op2 = []
- # 输出每一段的内容
- for para in file.paragraphs:
- op.append(para.text)
-
- for para1 in file2.paragraphs:
- op2.append(para1.text)
-
- diff = difflib.Differ()
- numbe = 0
- for d in range(len(op)):
- if op[d] != op2[d]:
- numbe += 1
- print('第%s不同' % (numbe))
- print('\n', path_file[0] + '的内容为:')
- print(' 文档1:' + op[d])
- print(path_file[1] + '的内容为:')
- print(' 文档2:' + op2[d], '\n')
- print('----------------------------------------------------')
- print('共有%s处不同' % (numbe))
- print('文档对比完毕!!!!!!!!')
结果如下:
- ----文档对比开始----
-
- 识别文档:word文档A.docx和文档word文档B.docx
-
- ----文档段落分析----
-
- word文档A.docx共有9个段落:
- word文档B.docx共有11个段落:
-
- ----文档区别分析----
-
- 第1不同
-
- word文档A.docx的内容为:
- 文档1:
- word文档B.docx的内容为:
- 文档2:我们是中国人
-
- ----------------------------------------------------
- 共有1处不同
- 文档对比完毕!!!!!!!!
-
- 进程已结束,退出代码为 0
该方法是按照段落进行对比的,对于表格不予处理。仅供大家学习使用