python - 使用 python 从 .docx 文件中提取特定的表格和图像
问题描述
我正在尝试从 word 文档中提取一个特定的表格,该表格紧跟在 .docx 文件中的标题“缩写列表”之后,以及紧随标题“图形研究”之后的图像。我已经能够使用 python-docx 代码提取标题,但是如何使用标题或它们的位置来解析文档以检索图像和表格if re.match("Graphical", img.previous_sibling.text)
。在我用来搜索我的图像的美丽汤中。我的 python docx 代码是:
from docx import *
document = Document('data/p21.docx')
document.save('test-new.docx')
for content in document.paragraphs:
if content.style.name=='Heading 1' or content.style.name=='Heading 2' or content.style.name=='Heading 3':
print (content.text)
解决方案
您可以使用 xml 从 docx 文件中提取结构化信息。尝试这个:
doc = Document("file.docx")
headings = [] #extract only headings from your code
tables = [] #extract tables from your code
tags = []
all_text = []
schema = '{http://schemas.openxmlformats.org/wordprocessingml/2006/main}'
for elem in doc.element.getiterator():
if elem.tag == schema + 'body':
for i, child in enumerate(elem.getchildren()):
if child.tag != schema + 'tbl':
node_text = child.text
if node_text:
if node_text in headings:
tags.append('heading')
else:
tags.append('text')
all_text.append(node_text)
else:
tags.append('table')
break
在上面的代码之后,您将拥有显示文档标题、文本和表格结构的标签列表,然后您可以从列表中映射相应的数据。
此外,检查标签列表中的数据以获取表格的标题。您可以迭代并获取标题所在的表格
推荐阅读
- android - Fresco - 如何将图像保存到本地存储
- compilation - 纯 D 函数在运行时计算(不是编译时)
- html - 当数组中只有一个元素时不会触发更改事件
- javascript - 使用制表符 (HTML) 遍历子项
- batch-file - 每次按 Enter 时执行命令,直到我按一个键批量退出
- python - 在 Keras 模型中重塑编码器解码器
- php - php base_convert 不适用于非整数?
- jquery - 我无法从 ajax 调用中输出 json
- python-3.x - 如何修复“无法分配请求的地址”。甚至我在mac上用python尝试了许多不同的端口
- python - 执行 rnn 模型时出错。如何解决?