python下对word文档做自动替换(包括页眉页脚)

Posted Cloud.9

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python下对word文档做自动替换(包括页眉页脚)相关的知识,希望对你有一定的参考价值。

常说的python-docx库并不好。我使用的时候碰到了部分文字未读取的情况。其实完全可以不用这个包。

doc文档本身是一个压缩包,改后缀为zip后,可解压看其中的内容:

 

xml格式我不了解,基本上征文所有的文字都在document.xml文档中,页眉页脚在header和footer中,写一个文档改变其中的值就行了。

这其中可以用库来快速操作:zipfile。可以免去解压什么的繁琐步骤。

def docx_replace(old_file,new_file,rep):
    zin = zipfile.ZipFile (old_file, \'r\')
    zout = zipfile.ZipFile (new_file, \'w\')
    for item in zin.infolist():
        buffer = zin.read(item.filename)
        if (item.filename == \'word/document.xml\' or \'header\' in item.filename):
            res = buffer.decode("utf-8")
            for r in rep:
                res = res.replace(r,rep[r])
            buffer = res.encode("utf-8")
        zout.writestr(item, buffer)
    zout.close()
    zin.close()

做替换,rep是替换前后内容的dict。

so easy

 

以上是关于python下对word文档做自动替换(包括页眉页脚)的主要内容,如果未能解决你的问题,请参考以下文章

NPOI 表头页眉页脚重复设置

word中如何自动获取指定节的页数?

Java 复制Word文档

word页眉每页加相同的图片怎么弄

WORD文档,如何使前后两页的页眉页脚显示不同

怎么在WORD页眉中添加页码为page1ofn?