Ecrire dans un fichier RTF
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:
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) |