Я не могу понять, как использовать DOCX, чтобы заменить более чем одно слово - PullRequest
0 голосов
/ 31 января 2020

У меня есть документ, который я хочу заменить более чем одним словом. Но я не смог сделать больше, чем одно. Вот мой код:

import re
from docx import Document

def docx_replace_regex(doc_obj: object, regex: object, replace: object) -> object:

    for p in doc_obj.paragraphs:
        if regex.search(p.text):
            inline = p.runs
            for i in range(len(inline)):
                if regex.search(inline[i].text):
                    text = regex.sub(replace, inline[i].text)
                    inline[i].text = text

    for table in doc_obj.tables:
        for row in table.rows:
            for cell in row.cells:
                docx_replace_regex(cell, regex , replace)



regex1 = re.compile(r"Question Number 1")
replace1 = r"Q1"
regex2 = re.compile(r"Question Number 2")
replace2 = r"Q2"
regex3 = re.compile(r"Question Number 3")
replace3 = r"Q3"
regex4 = re.compile(r"Question Number 4")
replace4 = r"Q4"
regex5 = re.compile(r"Question Number 5")
replace5 = r"Q5"

filename = "template.docx"
doc = Document(filename)

for i in range(1, 5):
    reg = "regex" + str(i)
    rep = "replace" + str(i)
    docx_replace_regex(doc, reg, rep)
doc.save('result9.docx')

Я написал этот код некоторое время go, и я просто сдался после многих попыток не зная, как решить проблему. Поэтому я не помню большинство из них, и я все еще застрял в том, как решить эту проблему.

...