【问题标题】: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 等来确定您搜索的文本是否在里面,然后生成新元素以替换文档

    【讨论】:

      猜你喜欢
      • 2015-01-09
      • 2013-10-18
      • 2014-08-19
      • 1970-01-01
      • 1970-01-01
      • 2021-09-20
      • 2019-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多