2017-03-06 6 views
0

Ich versuche, das Wort, das ich getippt und aktualisieren Sie es auf ein neues Wort oder eine Zeichenfolge jedoch der folgende Code zu bearbeiten aktualisiert aber die andere Zeichenfolge zu löschen, die nichtbearbeitet Zeichenfolge in einer Datei

Ex bearbeitet werden: Ich habe

a 
b 
c 

und ich bearbeiten a ich tippte aa als neue Zeichenfolge für a
dann wird es nur aa zeigen und der Rest ist weg.

input = raw_input("Input word to edit: ") 
    with open('workfile.txt', 'r') as myfile: 
     data=myfile.read() 
     if input in data: 
     Newword=raw_input("New: ") 
      data=Newword 
     f = open("workfile.txt","w") 
     f.writelines(data) 
      print "Data has been edited !\n" 

     else: 
      print "ERROR!" 
+1

'open ("workfile.txt", "w")' wird ** ** immer die gesamte Datei löschen. –

Antwort

0

Mit dieser Zeile:

data=Newword 

alles, was Sie tun, ist die ganze data Einstellung genau das, was der Benutzer eingegeben haben. Sie sollten str.replace() verwenden:

data = data.replace(input,Newword) 
Verwandte Themen