我需要帮助替换 word 文档中的字符串,同时保持整个文档的格式。
我正在使用 python-docx,在阅读文档后,它适用于整个段落,所以我松散了格式,比如粗体或斜体的单词。包括要替换的文本以粗体显示,我想保持这种状态。我正在使用这段代码:
from docx import Document
def replace_string2(filename):
doc = Document(filename)
for p in doc.paragraphs:
if 'Text to find and replace' in p.text:
print 'SEARCH FOUND!!'
text = p.text.replace('Text to find and replace', 'new text')
style = p.style
p.text = text
p.style = style
# doc.save(filename)
doc.save('test.docx')
return 1
因此,如果我实现它并想要类似的东西(包含要替换的字符串的段落会丢失其格式):
这是 第 1 段,这是 粗体 文本。
这是 第2段,我将替换 旧文本
目前的结果是:
这是 第 1 段,这是 粗体 文本。
这是第 2 段,我将替换新文本
原文由 Alo 发布,翻译遵循 CC BY-SA 4.0 许可协议
我发布了这个问题(尽管我在这里看到了一些相同的问题),因为这些(据我所知)都没有解决问题。有一个使用 oodocx 库,我试过了,但没有用。所以我找到了解决方法。
代码非常相似,但逻辑是:当我找到包含我要替换的字符串的段落时,使用 runs 添加另一个循环。 (这仅在我希望替换的字符串具有相同格式的情况下才有效)。