Zeilen von Textfile in verschiedene Textfiles speichern

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Claudia

Freitag 4. November 2005, 10:19

hallo,

mir ist es mittlerweile schon peinlich, aber ich hab schon wieder eine frage wegen meinem textfile ;-( :

1
-0.876408984375000E+05 0.277388000000750E+06
-0.876667968750000E+05 0.277433000000750E+06
-0.877375000000000E+05 0.277362500000750E+06
-0.877375000000000E+05 0.277362500000750E+06
End
2
-0.875908984365000E+05 0.277388000000750E+06
-0.876167968740000E+05 0.277433000000750E+06
-0.876874999990000E+05 0.277362500000750E+06
-0.876874999990000E+05 0.277362500000750E+06
End
3
-0.875408984383500E+05 0.277388000000750E+06
-0.875667968758500E+05 0.277433000000750E+06
-0.876375000008500E+05 0.277362500000750E+06
-0.876375000008500E+05 0.277362500000750E+06
End
4
-0.874908984373500E+05 0.277388000000750E+06
-0.875167968748500E+05 0.277433000000750E+06
-0.875874999998500E+05 0.277362500000750E+06
-0.875874999998500E+05 0.277362500000750E+06
End
5
-0.874408984363500E+05 0.277388000000750E+06
-0.874667968738500E+05 0.277433000000750E+06
-0.875374999988500E+05 0.277362500000750E+06
-0.875374999988500E+05 0.277362500000750E+06
End
.
.
.
.
mein problem ist nun: ich möchte für jede 6. zeile ein neues textfile erstellen, und die sollen dann durchgehend nummeriert werden:

1
-0.876408984375000E+05 0.277388000000750E+06
-0.876667968750000E+05 0.277433000000750E+06
-0.877375000000000E+05 0.277362500000750E+06
-0.877375000000000E+05 0.277362500000750E+06
End

so sollte ein textfile ausschauen und zB heißen:

"/text1.txt", das nächste dann "/text2.txt" .....

ist das überhaupt möglich???

danke im vorhinein,
lg claudia
joe

Freitag 4. November 2005, 13:35

Hallo!
Claudia hat geschrieben: "/text1.txt", das nächste dann "/text2.txt" .....

ist das überhaupt möglich???
Klar.

Code: Alles auswählen

for i in range(20):
    dateiname = "text%d.text" % (i)  # schöner "text%02d.text"
    f=open(dateiname,"w")
    # ... daten in datei schreiben ...
    f.close()
wenn dir das mit dem %d zu kryptisch ist, geht auch:

Code: Alles auswählen

dateiname = "text"+str(i)+".txt"
joe
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Freitag 4. November 2005, 14:53

Claudia hat geschrieben:mein problem ist nun: ich möchte für jede 6. zeile ein neues textfile erstellen, und die sollen dann durchgehend nummeriert werden:
Falls du unter Linux/Unix arbeiten solltest, geht das auch mit Hausmitteln, einfach in der Shell

Code: Alles auswählen

split -l6 Dateiname output
eingeben. (Dateien heißen dann outputaa, outputab, etc)
In Python geht das ansonsten so, wie joe geschrieben hat:

Code: Alles auswählen

inputfile = open("eingabefile","r")
linenr = 0
for line in inputfile:
  if linenr % 6 == 0:
    outputfile = open("output%04i" % (linenr/6),"w")
  outputfile.write(line)
  linenr += 1
BlackJack

Freitag 4. November 2005, 16:46

Man könnte das auch mit der Ursprünglichen Lösung für das einfügen der Zahlen verbinden und an der Stelle, wo eine neue Nummer fällig ist, eine neue Datei anfangen.
Claudia

Samstag 5. November 2005, 12:55

Hallo,

Danke für die Hilfe... Ich werde wahrscheinlich die variante von joghurt verwenden... ich hoffe, daß das das letzte mal war, daß ich euch mit meinen textfilen "belästigt" habe...

lg claudia
Antworten