【问题标题】:Search and replace text ODFDO搜索和替换文本 ODFDO
【发布时间】:2023-01-25 20:40:58
【问题描述】:
我正在尝试在 python 中用 odfdo 搜索和替换一些文本。但我不知道该怎么做。
我厌倦了下面的这段代码,它提供了一些文本。
doc = Document("test_01.odt")
k = doc.get_formatted_text()
print(k)
但是当我使用“if”时我无法选择文本
k = doc.get_formatted_text()
print(k)
if k == "replace":
print(k)
else:
pass
【问题讨论】:
标签:
python
search
replace
odt
【解决方案1】:
问题是 get_formatted_text() 是一个不应该用于编辑的输出函数。 odf文档其实就是xml元素树,所以最后还需要遍历树,找到替换的东西。
如果你想用 odfdo 替换一些文本,你需要使用如下函数:
doc.body.get_paragraphs(content="identifier")
doc.body.get_table(content="identifier")
doc.body.get_headers(content="identifier")
然后用类似的东西替换
element.replace("text_to_replace", "")
您可能会遇到的一个问题是搜索到的文本将在不同的元素之间拆分,当文本采用不同的字体、样式、中间有空格等时,就会发生这种情况。
为了克服这个问题,您可以遍历特定类型的所有元素,例如段落,使用 get_formatted_text 等来确定您搜索的文本是否在里面,然后生成新元素以替换文档