在python-docx中搜索和替换
我有一个文档(模板),里面有这样一句话:“你好,我的名字是Bob。Bob是个好名字。”
我想用python-docx这个工具打开这个文档,然后用“查找和替换”的方法(如果有的话)把每一个“Bob”替换成“Mark”。最后,我想生成一个新文档,内容变成“你好,我的名字是Mark。Mark是个好名字。”
我该怎么做呢?
from docx import *
TEMPLATE_FILE = 'test_template.docx'
class generate_docx:
@staticmethod
def test():
document = Document(TEMPLATE_FILE)
body = document.xpath('/w:document/w:body', namespaces=nsprefixes)[0]
body = replace(body, 'Bob', 'Mark')
savedocx('proper.docx')
出现了一个错误:'Document'对象没有'xpath'这个属性。
1 个回答
0
看起来你在使用 python-docx 的时候,把 v0.3.0 及以上版本的接口和旧版 v0.2.x 的接口搞混了。python-docx v0.3.0 是一次全面的重写,采用了面向对象的编程方式,这和之前的版本不兼容。新版本的文档可以在这里找到:python-docx.readthedocs.org/en/latest/index.html。现在,Document 实例不再是 Element 对象,所以也就没有 .xpath 这个方法了。