【发布时间】:2011-12-31 12:51:20
【问题描述】:
我想对 Word 文档进行一些简单的编辑,例如将所有 TEXT 替换为 text。
我尝试过python-docx,但它不能让我只保存我的更改。相反,它会创建一个具有默认样式的新文档并将其与我的内容一起保存。
是否有支持快速编辑 docx 的好库(Python 或其他语言)?
【问题讨论】:
我想对 Word 文档进行一些简单的编辑,例如将所有 TEXT 替换为 text。
我尝试过python-docx,但它不能让我只保存我的更改。相反,它会创建一个具有默认样式的新文档并将其与我的内容一起保存。
是否有支持快速编辑 docx 的好库(Python 或其他语言)?
【问题讨论】:
为什么您不能在 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()
但后来我发现了这个优秀的 docx 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')
【讨论】: