python操作word 查找_[python]python-docx的查找与替换(find and replace)

python-docx这个包算是python这边比较好用的处理word文档的包了,但是这个包主要侧重于从零开始建立一个word文档,但是如果你想先在word里面做一个模板,然后通过查找-替换这种操作实现动态更新模板内容恐怕就没有那么容易了。

很多人都给这个包的作者写过申请,希望尽快能有查找-替换这个功能,但是目前来看还没有那么快能出来。对这个包我也只是偶尔用一下,所以具体为什么这个功能很难实现,我也不敢说有多了解。不过以前我试过自己写一个find-replace的函数,实现的步骤很简单粗暴:遍历一个文档中paragraphs这个list下面所有的元素

对每一个元素(也就是一个段落)获取text属性,这个时候text就是str类型,然后就用python的方式进行文本查找与替换就好了

将这个元素的text属性设置为新的文本

所以代码大体上是下面这样:

def change_text(text:str,tag_dict:dict):

changeoccured=False

for k,v in tag_dict.items():

if f'_{k}_' in text:

changeoccured = True

text = text.replace(f'_{k}_',str(v))

return (changeoccured,text)

def tag_text_change(paragraph:docx.text.paragraph.Paragraph,tag_dict:dict):

ori_text = paragraph.text

change_occured, new_text = change_text(ori_text,data)

if(change_o

你可能感兴趣的:(python操作word,查找)