【问题标题】:NameError: name 'WD_COLOR_INDEX' is not defined while using python-docxNameError:使用 python-docx 时未定义名称“WD_COLOR_INDEX”
【发布时间】: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

如何导入颜色索引?

【问题讨论】:

    标签: python ms-word highlight python-docx


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2013-01-26
      • 1970-01-01
      • 2016-11-30
      • 2020-09-04
      • 2021-10-18
      • 2016-08-09
      • 2016-01-08
      • 2021-07-22
      相关资源
      最近更新 更多