我写了一个小函数用python-docx
替换某些单词,该函数很好用,只是它更改了某些样式元素,但奇怪的是并非全部。
我的功能(简体):
def template2doc(replace_dict, source, destination):
"""
Creates a new docx file from a template, replacing keywords withing the template and saving with a new name
:param replace_dict: dict for replacing each key with its value
:param source: path to source template file
:param destination: path to save the result document
:return: None
"""
doc = docx.Document(source)
for key, replacement in replace_dict.items():
for paragraph in doc.paragraphs:
if key in par.text:
paragraph.text = paragraph.text.replace(key, replacement)
# Save the result
doc.save(destination)
这适用于替换单词或句子,但是无法保留段落的某些样式元素(对齐方式,字体大小,粗体),但保留其他样式元素(例如,双下划线)。所以我的问题:
在保留所有以前的样式的同时,有没有更好的方法来替换docx文件中的短语?
注意:我不是“嫁给” python-docx
,任何可行的解决方案或软件包都可以使用