Bonjour,
Dans cette fonction, je ne parviens pas à écrire une donnée dans un fichier .rtf

Le problème si situe à la fin
si re.match(r'^nomIdemPrécédent$', line.strip()):
  • line = "nomIdemPrécédent"
  • cleaned_content doit prendre la valeur de nomPersonne
  • cleaned_content est enregistré dans le fichier.rtf à la place de la valeur line en cours



Ou sont mes erreurs ?
Alain

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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
def remplaceXXparNom(targetFile):
 
    precedentNomPersonne = ""
    precedentNom = ""
    nomPersonne = ""
    varianteNomPersonne = ""
    data = []
    premierNom = 0
 
    for para in doc.paragraphs:
        line = para.text.strip()
 
 
        if premierNom == 0 and re.match(r'^[A-ZÉÈ\s]+$', line.strip()): 
            nomPersonne = line
            premierNom = 1                  
 
        else:     
            if re.match(r'^[A-ZÉÈ\s]+$', line.strip()): 
                # Détecter les noms de personnes en majuscules
                precedentNomPersonne = nomPersonne
                nomPersonne = line
 
            else:
                match = re.match(r'^([A-ZÉÈÀ-ÖØ-Ý\s]+?)[\s(–-]([A-ZÉÈÀ-ÖØ-Ý\s]+)$', line.strip())
 
                if match:
                    precedentNomPersonne = nomPersonne
                    nomPersonne = match.group(1).strip()
                    varianteNomPersonne = match.group(2).strip()
 
                elif re.match(r'^nomIdemPrécédent$', line.strip()):
 
                    # Remplacer 'nomIdemPrécédent' par 'nomPersonne'
 
                        cleaned_content = line.replace(r'nomIdemPrécédent', nomPersonne)
 
                    with open(targetFile, 'w', encoding='latin-1') as file:
                        file.write(cleaned_content)