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
Zeilenweise vergleichen in einem File
-
- User
- Beiträge: 276
- Registriert: Freitag 8. Juni 2007, 08:50
- Wohnort: 84xxx Bereich
- Kontaktdaten:
-
- 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
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
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo!The Spirit hat geschrieben:das alle zeilen ausgegeben werden in denen eine zahl vorkommt aber nur wenn in der vorherigen zeile ein "ja" steht
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
Code: Alles auswählen
f = file("dateiname.txt", "rU")
for line in f:
# hier kannst du etwas mit der Zeile tun
f.close()
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
-
- 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
vielen dank nochmal.
mein hauptproblem war die variable pro durchlauf.
hatte sie an falscher stelle eingebunden