Выделение слов в существующем .docx с использованием python - PullRequest
0 голосов
/ 22 февраля 2020

Я хочу написать python скрипт, который ищет слово в файле .docx и выделяет или изменяет цвет шрифта над словом. (Я новичок в этом языке, и это проект, который я выбрал, чтобы выучить его, поэтому извините, если ответы на любые мои вопросы будут очевидны)

Я нашел аналогичный вопрос и скопировал код как основу

import docx
from docx.enum.text import WD_COLOR_INDEX

dstPath = './my/file/path'
keyword = 'someWord'
document = docx.Document(dstPath)

def wordSearch(document, keyword, dstPath):
    for p in document.paragraphs:
        if keyword in p.text:
            for run in p.runs:
                if keyword in run.text:
                    temp = run.text.split(keyword)
                    run.clear()
                    for i in range(len(temp) - 1):
                        run.add_text(temp[i])
                        run.add_text(keyword)
                        run.font.highlight_color = WD_COLOR_INDEX.YELLOW
    document.save(dstPath)

Он точно не выполняет то, что я хочу (он выделяет весь цикл, а не просто слово), и я думаю, что я смогу это исправить, возможно, сделав каждый из строки ins temp их собственный запуск и затем добавление ключевого слова между ними или что-то в этом роде. Но я надеялся, что будет лучшее решение, чем разделение строки по ключевому слову, поскольку это может вызвать проблемы, когда строка начинается или заканчивается словом, и я не знаю, существует ли элегантный способ решения этой проблемы.

Также я думаю, что в настоящее время мой поиск чувствителен к регистру, есть ли простой способ изменить это?

...