Seite 1 von 1

Zeilenweise vergleichen in einem File

Verfasst: Freitag 8. Juni 2007, 08:55
von The Spirit
Hi.
Bin neu bei Python und lese jetzt schon ne Zeit hier im Forum mit.
Jetzt hab ich ein Problem
Ich möchte einen Text zeilenweise vergleichen.
Jedoch sind die Zeilen in einer Datei.

Ich bin soweit, das er mir alle Zeilen ausgibt die ich will, jedoch zuviele.
Denn wenn in der vorhergehenden Zeile ein bestimmter String steht, soll die Folgezeile (auch wenn sie das Suchwort enthält) nicht ausgegeben werden.

Was kann ich da machen?

Thx

Verfasst: Freitag 8. Juni 2007, 09:08
von Panke
Erstmal das schreiben, was du schon hast (als Code).

Ist der bestimmte String in der vorhergehenden Zeile von der folgenden Abhängig?

Verfasst: Freitag 8. Juni 2007, 09:31
von The Spirit
der bestimmte string ist unabhängig von der folgenden zeile

beispiel

ja
1
nein
2
ja
3

jetzt sollen alle zeilen ausgegeben werden, in denen eine zahl vorkommt (hab ich)

somit wäre das ergebnis:

1
2
3

jedoch möchte ich letztendlich, das alle zeilen ausgegeben werden in denen eine zahl vorkommt aber nur wenn in der vorherigen zeile ein "ja" steht und das bekomm ich nicht hin.
somit sollte dann erhauskommen

1
3

Verfasst: Freitag 8. Juni 2007, 10:02
von EyDu
Panke hat geschrieben:Erstmal das schreiben, was du schon hast (als Code).
@The Spirit:
Bitte Panke beachten :D. Mit einer fertigen Lösung wirst du hier kaum rechnen können.

Verfasst: Freitag 8. Juni 2007, 10:16
von gerold
The Spirit hat geschrieben:das alle zeilen ausgegeben werden in denen eine zahl vorkommt aber nur wenn in der vorherigen zeile ein "ja" steht
Hallo!

Du musst am Ende jedes Durchlaufes den Inhalt der Zeile in einer Variable speichern. Beim nächsten Durchlauf prüfst du zuerst ob die aktuelle Zeile eine Zahl enthält. Wenn Ja, dann prüfst du noch, ob in der Variable, die die vorherige Zeile enthält, ein "ja" steht. Wenn das der Fall ist, dann gibst du die aktuelle Zeile aus.

So prüfst du ob es sich um eine Ganzzahl handelt:

Code: Alles auswählen

try:
    int(zeilentext)
    # Es ist eine Ganzzahl
except ValueError:
    pass
    # Es ist keine Ganzzahl
So läufst du Zeile für Zeile durch die Textdatei:

Code: Alles auswählen

f = file("dateiname.txt", "rU")
for line in f:
    # hier kannst du etwas mit der Zeile tun
f.close()
mfg
Gerold
:-)

Verfasst: Dienstag 12. Juni 2007, 08:44
von The Spirit
so, hab´s hinbekommen.
vielen dank nochmal.
mein hauptproblem war die variable pro durchlauf.
hatte sie an falscher stelle eingebunden