从Python中的Word文档(.docx)中提取突出显示的单词
作者:互联网
我正在处理一堆单词文档,其中有突出显示的文本(单词)(使用颜色代码,例如黄色,蓝色,灰色),现在我想提取与每种颜色关联的突出显示的单词.我正在用Python编程.这是我目前所做的:
用[python-docx] [1]打开word文档,然后转到< w:r>标签,其中包含文档中的标记(单词).我使用了以下代码:
#!/usr/bin/env python2.6
# -*- coding: ascii -*-
from docx import *
document = opendocx('test.docx')
words = document.xpath('//w:r', namespaces=document.nsmap)
for word in words:
print word
现在,我停留在检查每个单词是否具有< w:highlight>的部分.标签并从中提取颜色代码,如果它与< w:t>中的黄色打印文本匹配,标签.如果有人可以指出我要从解析的文件中提取单词的话,我将不胜感激.
解决方法:
我以前从未使用过python-docx,但是有帮助的是,我在网上找到了一段代码片段,说明突出显示的文本的XML结构是什么样的:
<w:r>
<w:rPr>
<w:highlight w:val="yellow"/>
</w:rPr>
<w:t>text that is highlighted</w:t>
</w:r>
从那里开始,提出这一点相对简单:
from docx import *
document = opendocx(r'test.docx')
words = document.xpath('//w:r', namespaces=document.nsmap)
WPML_URI = "{http://schemas.openxmlformats.org/wordprocessingml/2006/main}"
tag_rPr = WPML_URI + 'rPr'
tag_highlight = WPML_URI + 'highlight'
tag_val = WPML_URI + 'val'
for word in words:
for rPr in word.findall(tag_rPr):
if rPr.find(tag_highlight).attrib[tag_val] == 'yellow':
print word.find(tag_t).text
标签:docx,xml,python,ms-word 来源: https://codeday.me/bug/20191101/1984918.html