龙空技术网

「日常」用中文写 Python 系列——读取 word 文档中的表格并比较

吴烜xuan三声 883

前言:

当前同学们对“python查重word文本”大致比较关心,各位老铁们都想要剖析一些“python查重word文本”的相关文章。那么小编同时在网摘上搜集了一些对于“python查重word文本””的相关知识,希望看官们能喜欢,兄弟们一起来了解一下吧!

最近想对某些word文档(docx)的表格内容作比较, 于是找了一下相关工具. 参考 Automate the Boring Stuff with Python 中的word部分, 试用了python-docx

演示如下. 两个简单的word文档, 各有一个表格:

读取文档中的表格到列表(为演示只对单列表格操作):

读取结果:

表1.docx -> ['值1', '值2', '值3']

接着找到这个做比较的python库seperman/deepdiff, 来源: Get difference between two lists

from deepdiff import DeepDiff表1 = 取表格('表1.docx')表2 = 取表格('表2.docx')print(DeepDiff(表1, 表2))

输出结果(为更可读, 已手动格式化):

{'values_changed':   {'root[1]':     {'new_value': '值2.5', 'old_value': '值2'}  }, 'iterable_item_added':   {'root[3]': '值4'}}

显示了修改的值和添加的值, 还挺好用. 实际的表格是两列, 需要按照某个键值作对比. 于是用字典, 正好DeepDiff也提供两个字典间的比较. 双列表文件演示:

读取双列表到字典后, 进行比较:

输出如下:

{ 'dictionary_item_added': {"root['键3']"},  'values_changed': {"root['键2']": {'new_value': '值2.5', 'old_value': '值2'}}}

标签: #python查重word文本