Seite 1 von 1

mehrere Begriffe in einer Datei ersetzen

Verfasst: Donnerstag 8. November 2012, 15:25
von seltersarmee
Hallo,

nach einiger Recherche im Netz, konnte ich meine Frage nur hinreichend befriedigend beantworten.
Ich möchte folgendes erreichen:
das skript soll die datei "Datei1.txt" öffnen und dann die Werte von Z_1 = 0 und Z_2 = 0 auf 1 setzen. Danach soll die Datei in "Datei2.txt" umbenannt und gespeichert werden. Anschließend wird "Datei2" geöffnet und die Werte auf 3 gesetzt. usw.
bei mir sieht das folgendermaßen und vor allem umständlich aus:
i=1
while i<=6:
Job = open("Datei"+str(i+1)+".py","w")
data = open("Datei"+str(i)+".py").read()
Job.write(re.sub("Z_1 = *.*", "Z_1 = "+str(i), data))
Job.close()
Job2 = open("Datei2."+str(i)+".py","w")
data = open("Datei"+str(i)+".py").read()
Job2.write(re.sub("Z_2 = *", "Z_2 = "+str(i), data))
Job2.close()
i=i+1

Könnt ihr mir da bitte helfen?

Re: mehrere Begriffe in einer Datei ersetzen

Verfasst: Donnerstag 8. November 2012, 15:48
von EyDu
Hallo und willkommen im Forum!

Gleich erstmal ein paar Anmerkungen:
- Das Forum hat Code-Tags für Python, dann kan man deinen Beitrag auch lesen.
- Wenn man eine Schleife mit einer Zählvariable hat, dann möchte man for benutzen und nicht while.
- Dateien solltest du mit dem with-Statement öffnen.
- Strings solltest du nicht mittels + zusammensetzen, dazu gibt es Stringformatting

Zu deinem eigentlichen Problem: Reguläre Ausdrücke funktionieren nicht so, wie du sie verwenden willst. Du sollest damit mal ein wenig herumtesten und ein Tutorial durcharbeiten.

Re: mehrere Begriffe in einer Datei ersetzen

Verfasst: Donnerstag 8. November 2012, 16:10
von /me
seltersarmee hat geschrieben:das skript soll die datei "Datei1.txt" öffnen und dann die Werte von Z_1 = 0 und Z_2 = 0 auf 1 setzen. Danach soll die Datei in "Datei2.txt" umbenannt und gespeichert werden. Anschließend wird "Datei2" geöffnet und die Werte auf 3 gesetzt. usw.
Nach der Beschreibung behältst du am Ende nur eine einzige Datei übrig. "Datei1.txt" wird zu "Datei2.txt", "Datei2.txt" wird zu "Datei3.txt", "Datei3.txt" .. nun es sollte klar sein. Der von dir gezeigte Code dazu sieht allerdings anders aus.

Wie ist es denn jetzt wirklich gemeint?

Re: mehrere Begriffe in einer Datei ersetzen

Verfasst: Donnerstag 8. November 2012, 16:21
von seltersarmee
Ich meine es so, dass am Ende alle Dateien noch vorliegen. Bei meinem Code heißen die "guten" Dateien 2.xxx, weil ich nicht weiß, weiß ich es besser machen kann. Gewünscht ist es aber so, dass die beiden Variablen geändert werden und die Datei mit einer Zahl höher im Namen abgespeichert wird.