程序化地对Word文档进行简单编辑
我想在一个Word文档上做一些简单的修改,比如把所有的TEXT
替换成text
。
我试过用python-docx
这个工具,但它不让我只保存我的修改。相反,它会创建一个新的文档,使用默认的样式,然后把我的内容保存到这个新文档里。
有没有什么好的库(Python或者其他语言)可以支持快速编辑docx文件的?
1 个回答
3
首先,简单说一下为什么你不能直接在.docx文件中做简单的字符串替换:其实,.docx文档本质上是一个使用OpenXML格式的压缩文件,就像一个.zip文件一样。所以你需要先把它解压缩。以前我会用zip
来解压.docx文件,然后再去找里面的文本,像这样 -
>>> import zipfile
>>> z = zipfile.ZipFile("yourDocInDocx.docx")
>>> "someText" in z.read("word/document.xml")
True
>>> "random other string" in z.read("word/document.xml")
False
>>> z.close()
不过后来我发现了一个很棒的Python库,叫做Python-docx,它可以帮你解决这个问题。
# Import the module
from docx import *
# Open the .docx file
document = opendocx('yourDocInDocx.docx')
# Search returns true if found
search(document,'your search string')