提问人:Cameron Stark 提问时间:4/19/2022 最后编辑:Cameron Stark 更新时间:5/1/2022 访问量:901
我想使用 python 编辑 odt 文档。只是简单的关键字交换。这可能吗?
I would like to edit an odt document using python. Just a simple swap of keywords. Is this possible?
问:
1)我想以编程方式交换 odf 文档中的某些关键字。例如,示例租约已TENANT_NAME,我的程序将插入租户的实际名称。
- 我尝试了这个网站上的一个代码片段,它适用于简单的文档,但是当我尝试在我的租约中使用它时,它会抛出超出范围的索引错误。
from odf import opendocument, text, teletype
this_dictionary = {
'TENANT_NAME': 'Cameron Stark',
'DATE_START': '5/1/2022',
'DATE_END': '7/31/2022',
'RENT_AMOUNT': '500',
'DEPOSIT_AMOUNT': '400',
'EMAIL_ADDRESS': '[email protected]',
'PHONE_NUMBER': '1234567890'
}
PATH = "C:/Users/Cameron Stark/Documents/sample_lease_alpine.odt"
DESTINATION = "C:/Users/Cameron Stark/Documents/cameron_lease.odt"
def change_odt_file(my_dictionary, path, destination):
text_doc = opendocument.load(path)
for x, y in my_dictionary.items():
texts = text_doc.getElementsByType(text.P)
s = len(texts)
for i in range(s):
old_text = teletype.extractText(texts[i])
new_text = old_text.replace(x, y)
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])
text_doc.save(destination)
text_doc = opendocument.load(destination)
change_odt_file(this_dictionary, PATH, DESTINATION)
答:
0赞
Cameron Stark
5/1/2022
#1
简单的解决方案,只需用 HTML 重写我的租约即可。超级易于使用,比任何文字处理软件都具有更强大的功能。
评论
dict
x
y
for x, y in dict.items():