[英]How to use python-docx to replace text in a Word document and save
[英]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.