程序化地对Word文档进行简单编辑

3 投票
1 回答
2107 浏览
提问于 2025-04-17 09:19

我想在一个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')

撰写回答