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 :
Le code compile et s’exécute. Mon soucis est que si deux expressions se ressemblent, elles sont modifiées deux fois.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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()
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.
Partager