Rechercher et remplacer des caractères dans un fichier
Bonjour,
Je débute en python et ma question va peut être paraitre simple mais j'ai du mal à trouver la solution. J'ai donc décidé de me tourner vers vous. Voila mon problème.
Ce que je cherche à faire (du moins la partie bloquante) c'est modifier les expressions d'un fichier afin quelles corresponde à un "standard".
Pour cela, je procède de la manière suivante :
- je demande à l'utilisateur le nom de son expression a, b, c...
- J'ajoute ces expressions dans un dictionnaire et j'ajoute la clef correspondante (variable mise en forme)
- j'ouvre le fichier et je le lit
- je remplace les expressions a, b,c.. par les clefs correpondantes en les vérifiant une à une dans une boucle for
- j'écris la nouvelle chaine dans le fichier
Si cela n'est pas clair, voila le bout de programme :
Code:
1 2 3 4 5 6 7 8
| f = open(fichier,"r")
chaine= f.read()
for cle in index:
chaine = chaine.replace(cle, index[cle])
f.close
f=open(fichier,"w")
f.write(chaine)
f.close() |
Le code compile et s’exécute. Mon soucis est que si deux expressions se ressemblent, elles sont modifiées deux fois.
Par exemple l'utilisateur me donne :- expression a = Maman
- expression b = Mama
Que je remplace respectivement par _L_Maman et _L_Mama et bien si Maman se trouve dans le fichier à traiter il deviendra d'abord _L_Maman puis _L__LMama par exemple puisqu'il sera remplacé par les deux clefs.
Je ne sais pas si je suis très clair dans le cas contraire n'hésiter pas à me le dire j'essaierais d'expliquer différemment.
Comment éviter ce probleme existe t il un moyen de faire quelque chose du style string.replace(option=expression_exact) ? Ou vaudrait il mieux passer par les regex ?
Merci d'avance pour votre aide.