NameError:使用 python-docx 时未定义名称“WD_COLOR_INDEX”

Posted

技术标签:

【中文标题】NameError:使用 python-docx 时未定义名称“WD_COLOR_INDEX”【英文标题】:NameError: name 'WD_COLOR_INDEX' is not defined while using python-docx 【发布时间】:2017-03-08 10:54:17 【问题描述】:

我一直在尝试使用python-docx(python-docx-0.8.6,python 2.7,32 位)在 MS Word 文档中查找突出显示颜色,并根据其突出显示颜色处理每段文本。

按照文档,我尝试导入/使用WD_COLOR_INDEX,但似乎找不到它。

from docx.enum import *

if (doc.paragraphs[i].runs[j].font.highlight_color == WD_COLOR_INDEX.YELLOW): 
    #do the appropriate thing for the yellow-highlighted text

如何导入颜色索引?

【问题讨论】:

【参考方案1】:

这个枚举与文本有关,所以可以在docx.enum.text模块中找到:

from docx.enum.text import WD_COLOR_INDEX

它还有一个别名(为了更简洁的表达式),所以你可以使用它来代替:

from docx.enum.text import WD_COLOR

这使得每个引用更短,例如WD_COLOR.YELLOW.

【讨论】:

谢谢。我可以问一个后续问题:我正在尝试将词性 (POS) 标记与每个单词/标记的文本的突出显示颜色(颜色实际上编码命名实体的类型)相关联。 POS 标记是使用 NLTK 的 POS 标记器提取的,而突出显示(谢天谢地)是使用 python-docx 提取的。困难在于标记器和标记器对文本的分割不同于与字体+高亮等相关的运行分割。获得对应关系的最佳方法是什么(例如,元组是:? @HW 这真的是一个单独的问题。如果你发布它并用'python-docx'标记它,我会看到它。【参考方案2】:

在 python 3.7 中

from docx.enum import *
from docx.enum.text import WD_COLOR_INDEX
if (doc.paragraphs[i].runs[j].font.highlight_color == WD_COLOR_INDEX.YELLOW): 
    #do the appropriate thing for the yellow-highlighted text

【讨论】:

以上是关于NameError:使用 python-docx 时未定义名称“WD_COLOR_INDEX”的主要内容,如果未能解决你的问题,请参考以下文章

Python如何操作word文档,Python-docx类库的使用

python-docx 使用教程

使用 python-docx 突出显示 docx 文件中的段落

python操作word文档(python-docx)

使用python-docx处理word.docx文件

如何使用 python-docx 将复选框表单插入 .docx 文件?