Zeilenweise vergleichen in einem File

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
The Spirit
User
Beiträge: 276
Registriert: Freitag 8. Juni 2007, 08:50
Wohnort: 84xxx Bereich
Kontaktdaten:

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
Panke
User
Beiträge: 185
Registriert: Sonntag 18. März 2007, 19:26

Erstmal das schreiben, was du schon hast (als Code).

Ist der bestimmte String in der vorhergehenden Zeile von der folgenden Abhängig?
The Spirit
User
Beiträge: 276
Registriert: Freitag 8. Juni 2007, 08:50
Wohnort: 84xxx Bereich
Kontaktdaten:

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
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

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.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
The Spirit
User
Beiträge: 276
Registriert: Freitag 8. Juni 2007, 08:50
Wohnort: 84xxx Bereich
Kontaktdaten:

so, hab´s hinbekommen.
vielen dank nochmal.
mein hauptproblem war die variable pro durchlauf.
hatte sie an falscher stelle eingebunden
Antworten