Seite 1 von 1

Zeichen in tct suchen und ersetzen

Verfasst: Dienstag 24. Februar 2015, 10:42
von sbfly
Hallo ich möchte bei einer Textdatei mehrere Zeichen suchen und ersetzen

Hierzu dachte ich mir ich verwende folgenden Code

Code: Alles auswählen

        with open(outFileName.txt','rw') as fin:
            for elem in fin:
                elem.replace('(', '')
                elem.replace('[', '')
                elem.replace('])', '')
            fin.close
Leider hat dieser keinen Einfluss auf die Datei was mache ich Falsch?

Viele Grüße und Danke

Sbfly

Re: Zeichen in tct suchen und ersetzen

Verfasst: Dienstag 24. Februar 2015, 10:54
von sparrow
1. Du liest eine Datei, schreibst aber nirgends. Man schreibt nicht in die Datei, aus der man liest. In der Regel macht man das so, dass man aus der eine liest, in eine andere schreibt. Am Ende die alte Datei löscht und die neue an die entsprechende Stelle verschiebt, bzw. die neue Datei umbenennt.

2. elem.replace('(', '') ändert nicht elem sondern gibt eine Zeichenkette zurück, in de die Ersetzung vorgenommen wurde. Dieses Ergebnis bindest du aber nicht an einen Namen.

3. Wenn du eine Datei mit with öffnest musst du sie nicht schließen. Dafür ist with ja da.

4. Ist das nicht dein Code. Der hier wirft nämlich einen Syntax-Fehler weil die Zeichenkette um den Dateinamen nicht richtig geschlossen ist.

Re: Zeichen in tct suchen und ersetzen

Verfasst: Dienstag 24. Februar 2015, 11:05
von /me
sparrow hat geschrieben:3. Wenn du eine Datei mit with öffnest musst du sie nicht schließen. Dafür ist with ja da.
Das ist auch in diesem Fall gut, da das close überhaupt nicht aufgerufen sondern nur referenziert wird. Für einen Aufruf fehlen die Klammern.

Re: Zeichen in tct suchen und ersetzen

Verfasst: Dienstag 24. Februar 2015, 12:03
von BlackJack
So ganz grundsätzlich schauen die Ersetzungen die da gemacht werden auch verdächtig nach etwas aus was man so nicht machen sollte. Also zum Beispiel Python-Grunddatentypen als Zeichenkette in eine Datei schreiben und dann auf dieser Zeichenkettenrepräsentation herumbasteln statt die ordentlich zu parsen. Oder halt gleich in dem Format speichern in dem man sie haben möchte.