我正在尝试使用odfpy编写程序报告。我的想法是搜索每个[[[[e_mail_address]]]之类的关键字,并将其替换为数据库中的单词。
我在odfpy api中找到了函数文本,但是将其转换为字符串会失去格式。
odfpy安装文件中有一个文档:api-for-odfpy.odt。在点6.2电传打字模块中,编写了如何从文档中获取所有文本并将其放入列表的方法:

from odf import text, teletype
from odf.opendocument import load

textdoc = load("my document.odt")
allparas = textdoc.getElementsByType(text.P)
print teletype.extractText(allparas[0])

现在我正在寻找将当前文本替换为另一种文本的方法。也许:
text.Change()

但使用时总会出现错误。如果您有使用odfpy的经验,请提供帮助。

最佳答案

我已经找到了答案:

textdoc = load("myfile.odt")
texts = textdoc.getElementsByType(text.P)
s = len(texts)
for i in range(s):
    old_text = teletype.extractText(texts[i])
    new_text = old_text.replace('something','something else')
    new_S = text.P()
    new_S.setAttribute("stylename",texts[i].getAttribute("stylename"))
    new_S.addText(new_text)
    texts[i].parentNode.insertBefore(new_S,texts[i])
    texts[i].parentNode.removeChild(texts[i])
textdoc.save('myfile.odt')

关于python - 搜索并替换文字odfpy,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26887105/

10-11 13:27