Seite 1 von 1

Text Dateien parsen

Verfasst: Donnerstag 13. November 2008, 14:21
von spinneratz
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.

Verfasst: Donnerstag 13. November 2008, 14:55
von n4p
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?

Re: Text Dateien parsen

Verfasst: Donnerstag 13. November 2008, 15:02
von numerix
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.

Danke

Verfasst: Donnerstag 13. November 2008, 15:42
von spinneratz
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???