Bonjour,

J'ai conçu un début de script qui me permet de remplacer des mots d'un fichier texte et de les écrire dans un autre fichier, suivant une liste prédéfinie.
Par exemple : Si dans le fichier a.txt il y a le mot "Fruit", et bien en parcourant le fichier il va remplacer tous les mots "Fruit" par "Pomme".
Sauf que là ou j'ai un problème c'est que un mot comme "Fruit" doit être assimilé(remplacé) par plusieurs mots en fonction de son emplacement dans le texte.

J'ai donc pensé à faire des sous listes, mais je ne parviens pas à quelque chose de concluant..


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
 
import re
remplacement_dict = {"A":{'fruit':'pomme','frut':'poulpe'}, "B":{'fruit':'poire','pistache':'tomate'}}
 
print(remplacement_dict)
 
with open("a.txt") as fichier, open("b.txt", "w") as nouveaufichier:
 texte = fichier.read()
 
def replfunc(match):
 return remplacement_dict[match.group[0]]
 
regex = re.compile('|'.join(re.escape(x) for x in remplacement_dict))
with open('a.txt') as fin, open('b.txt', 'w') as fout:
 for line in fin:
  fout.write(regex.sub(replfunc,line))
Merci d'avance pour votre aide