如何使用Python从doc / docx文件中提取数据

我知道那里有类似的问题,但我找不到能回答我祈祷的事情.我需要的是一种从MS-Word文件访问某些数据并将其保存在XML文件中的方法.
阅读python-docx没有帮助,因为它似乎只允许一个人写入word文档,而不是阅读.
准确地呈现我的任务(或者我如何选择接近我的任务):我想在文档中搜索关键词或短语(文档包含表格)并从表格中提取关键词/短语的文本数据找到.
有人有什么想法吗?

解决方法:

docx是一个包含文档XML的zip文件.您可以打开zip,阅读文档并使用ElementTree解析数据.

这种技术的优点是你不需要安装任何额外的python库.

import zipfile
import xml.etree.ElementTree

WORD_NAMESPACE = '{http://schemas.openxmlformats.org/wordprocessingml/2006/main}'
PARA = WORD_NAMESPACE + 'p'
TEXT = WORD_NAMESPACE + 't'
TABLE = WORD_NAMESPACE + 'tbl'
ROW = WORD_NAMESPACE + 'tr'
CELL = WORD_NAMESPACE + 'tc'

with zipfile.ZipFile('<path to docx file>') as docx:
    tree = xml.etree.ElementTree.XML(docx.read('word/document.xml'))

for table in tree.iter(TABLE):
    for row in table.iter(ROW):
        for cell in row.iter(CELL):
            print ''.join(node.text for node in cell.iter(TEXT))

有关更多详细信息和参考,请参阅我的*对How to read contents of an Table in MS-Word file Using Python?的回答.

上一篇:docx和doc的区别


下一篇:关于文档处理的各种脚本