Bonsoir,

Voici un code dont le but est de remplacer un texte dans un fichier odt en utilisant la librairie pyodf :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def saxiter(node : Element) -> Iterator[Element]:
    """Return an interator over all elements reachable from node: later siblings and recursively all children."""
    while node:
        yield node
        if node.hasChildNodes():
            yield from saxiter(node.firstChild)
        node = node.nextSibling
 
def edittextElements(doc : OpenDocument, pattern : list[str]) -> Generator[tuple[str, str], str, None]:
    """Goes over all elements, and look for the text that contains the given."""
    for elem in saxiter(doc.topnode):
        if elem.__class__ is Text:
            for pat in pattern:
                if pat in str(elem):
                    elem.data = yield (pat, elem.data)
J'ai trouvé ce code sur cette page : https://github.com/eea/odfpy/wiki/Re...eTextToAnother.

Avez-vous eu l'occasion de le tester ? Personnellement je ne le comprends et je ne vois pas comment le compléter pour le rendre opérationnel.