[Python] Remplacer d'une chaine de caractère.

Résolu/Fermé
djo798OO - Modifié par djo798OO le 11/01/2012 à 18:13
 djo798OO - 11 janv. 2012 à 23:36
Bonjour,
je suis vraiment novice en python, et je voulais faire un petit programme.
En fait, le prog chercheras dans un fichier .txt si une certaine chaine de caractères s'y trouve, et si il la trouve, qu'il la remplace par autre chose.

Du genre :
Si il trouve le mot "bonjour" dans une phrase, il le remplaceras par "salut".
Le problème c'est que quand j'écris mon prog et le test, il m'écrase tout le contenu du fichier.
Merci d'avance à tous.
A voir également:

4 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
11 janv. 2012 à 20:01
Bonjour,
C'est normal puisque vous ouvrez le fichier en écriture. En plus, à aucun moment vous lisez le fichier.

Si le fichier n'est pas volumineux, vous pouvez faire :
f=open('fichier.txt','r')
chaine=f.read().replace('bonjour','salut')
f.close()
f=open('fichier.txt','w')
f.write(chaine)
f.close()

Cdlt,
3
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
11 janv. 2012 à 18:39
Bonjour,
Merci de poster ton code pour qu'on puisse le corriger.
Cdlt,
0
Donc voilà mon code :


f=open('fichier.txt','w')
a='bonjour'
a.replace('bonjour','salut')
a=a.replace('bonjour','salut')
f.write(a)
f.close()


Le problème là, c'est que je ne sais pas comment rechercher la chaine 'bonjour' et la remplacer par 'salut'.
et même si il y a écrit "bonjour machin", il écraseras tout, et il y auras seulement écris "salut".

merci déjà d'avoir répondu.
0
Ahh! Merci beaucoup.

Ca marche parfaitement.

Bonne soirée.
0