Text Dateien parsen

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
spinneratz
User
Beiträge: 23
Registriert: Freitag 31. Oktober 2008, 15:41

Hallo,
mal wieder plagen mich Probleme beim Programmieren:
Ist jetzt vielleicht nicht besonders Python spezifisch, aber ich will es mit Python machen. Und zwar:
Ich habe Text Dateien ungefähr in dieser Form:

HEADER
RR 34
ST 0
T 100
1
2
3
5
6
HEADER
RR 34
ST 0
T 200
4
6
7
4
5
....

usw.

Ich will immer die Werte (z.B. 1 2 3...) unter dem Header auslesen, mit Ihnen etwas machen und dann wieder die nächsten Werte unter dem zweiten Header bekommen und mit denen was machen.

Mit:

Code: Alles auswählen

z = 1
for line in open("dateiname.txt").xreadlines():  
    if z == 1: print str(line)
    z = z +1
kann ich die Datei auslesen und auch auf nur an bestimmten Zeilen eine Ausgabe machen.
Leider weiß ich nicht wie lang die einzelnen Passagen sind.
Gibt es irgend eine Möglichkeit sich mit dem Header irgendeinen Iterator zu basteln oder sowas?
Ich hab leider nicht allzu viel Erfahrung in Python.

Würde mich sehr über Hilfe freuen.
n4p
User
Beiträge: 55
Registriert: Dienstag 10. Juni 2008, 11:05

Vielleicht solltest du noch dazu schreiben für was du diese Daten brauchst.
Geht es nur um die Zahlenwerte, dann könntest bis zur nächsten Zeile die HEADER heißt die numerischen werte ausgeben lassen und verarbeiten.

Ließe sich die Datei nicht grundsätzlich in einem eindeutigeren Format erstellen / liefern?
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

spinneratz hat geschrieben:Ich will immer die Werte (z.B. 1 2 3...) unter dem Header auslesen, mit Ihnen etwas machen und dann wieder die nächsten Werte unter dem zweiten Header bekommen und mit denen was machen.
Dann mach das doch einfach:
Lies die Datei zeilenweise aus, prüfe für jede Zeile, ob es eine Header-Zeile ist, wenn ja, dann lies die nachfolgenden Zeilen so lange aus, bis wieder eine Header-Zeile kommt und "mach was" mit den Werten dazwischen.
spinneratz
User
Beiträge: 23
Registriert: Freitag 31. Oktober 2008, 15:41

Danke Numerix,
:lol: Ich glaub ich hab viel zu kompliziert gedacht. Ist ja eigentlich gar nicht so schwer. Grübel... warum bin ich da nicht drauf gekommen???
Antworten