簡體   English   中英

如何用python有效替換word文檔中的句子

[英]How to effectively replace sentences in word document with python

這是我到目前為止所做的:

from docx import Document

document = Document('filename.docx')

dic = {
    'Stack':'Stack Overflow',
'October 18 2021' : 'Actual Date'}
for p in document.paragraphs:
    inline = p.runs
    for i in range(len(inline)):
        text = inline[i].text
        for key in dic.keys():
            if key in text:
                 text=text.replace(key,dic[key])
                 inline[i].text = text


document.save('new.docx')

但是當她需要替換一個單詞時,這個功能似乎很好用,但是當她需要替換句子時,它不起作用(這里是2021年10月18日)/

任何想法為什么句子不起作用?

問題來自這樣一個事實,即您正在閱讀的部分句子實際上是在不同的運行中。

正如 scanny 在這篇文章中所說:

因此運行可以有效地在任意位置拆分段落的文本,甚至每個字符運行一次。 簡而言之,Word 不會嘗試跟蹤句子; 如果你看到一個 run 是一個純屬巧合的句子。

解決此問題的一種簡單方法是使用paragraph.text而不是inline.text搜索和替換

from docx import Document

document = Document('test.docx')

dic = {
    'Stack':'Stack Overflow',
    'October 18 2021' : 'Actual Date'
}
for p in document.paragraphs:
    for key in dic.keys():
        if key in p.text:
            p.text = p.text.replace(key,dic[key])

document.save('new.docx')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM