Mac*_*iek 5 python search replace odt odfpy
我正在尝试使用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])
Run Code Online (Sandbox Code Playgroud)
现在我正在寻找将当前文本替换为另一个文本的方法.也许:
text.Change()
Run Code Online (Sandbox Code Playgroud)
但使用它时总是出错.如果您有使用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')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1970 次 |
| 最近记录: |