Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 12/12/2015, à 11:58

skander09

replace dans python

Bonjour

J' ai un petit code et je veux le modifier de tel sorte de les fonctions replace soient dans des lignes séparés, quand je fais ça il me donne un erreur, y 'a t-il une solution et merci smile

result=file("file.txt","r").read().replace("20", "new").replace("10", "old")

file("file1.txt","w").write(result)

Hors ligne

#2 Le 12/12/2015, à 12:12

pingouinux

Re : replace dans python

Bonjour,
Ce que tu montres ci-dessus est correct (du moins en python2).
Si tu as essayé autre chose qui ne fonctionne pas, montre ce que tu as fait, et le message d'erreur.

Hors ligne

#3 Le 12/12/2015, à 12:13

skander09

Re : replace dans python

Je dois le faire dans des lignes séparés parce que j' ai plus de 100 termes à remplacer et je veux les mettre l'un sous l'autre

Hors ligne

#4 Le 12/12/2015, à 12:18

skander09

Re : replace dans python

Quand je fais ce code

result=file("file.txt","r").read()
.replace("20", "new")
.replace("10", "old")
file("file1.txt","w").write(result)

il me donne un erreur

  File "test1.py", line 5
    .replace("20", "new")
    ^
SyntaxError: invalid syntax

Hors ligne

#5 Le 12/12/2015, à 12:25

pingouinux

Re : replace dans python

Ceci devrait convenir :

result=file("file.txt","r").read() \
.replace("20", "new") \
.replace("10", "old")

ou bien

result=file("file.txt","r").read()
result=result.replace("20", "new")
result=result.replace("10", "old")

Hors ligne

#6 Le 12/12/2015, à 12:27

skander09

Re : replace dans python

Merci beaucoup pingouinux de votre aide smile

Hors ligne

#7 Le 12/12/2015, à 12:32

pingouinux

Re : replace dans python

Si tu as beaucoup de termes à remplacer, tu peux faire ainsi :

ma_liste=( ("20","new"), ("10","old") )

result=file("file.txt","r").read()
for s1,s2 in ma_liste: result=result.replace(s1,s2)

Éventuellement, pour que ce soit plus lisible :

ma_liste=(
           ("20","new"), 
           ("10","old"),
         )

Hors ligne

#8 Le 12/12/2015, à 12:37

skander09

Re : replace dans python

D' accord merci smile

Hors ligne