Seite 1 von 1

Abfrage Liste if row is not None: mit Fehler

Verfasst: Mittwoch 4. Juni 2025, 19:35
von franze_m
Hallo,
ich lese eine CSV mit einer Leerzeile ein und bin nicht in der Lage diese Leerzeile mit der Abfrage if row is not None: zu eliminieren.

Was mache ich falsch ? der Code befindet sich im Bild mit dem Variableninhalt row. https://privat.bb-24.net/s/YK3gzAL2f69Ecc8

Re: Abfrage Liste if row is not None: mit Fehler

Verfasst: Mittwoch 4. Juni 2025, 20:03
von __blackjack__
@franze_m: Natürlich nicht. CSV-Reader liefert ausschliesslich Werte die *nicht* `None` sind. Insbesondere ist eine leere Zeile nicht `None`. Welchen Wert die hat, zeigt Dir die IDE da sogar netterweise an.

Re: Abfrage Liste if row is not None: mit Fehler

Verfasst: Mittwoch 4. Juni 2025, 20:43
von Sirius3
@franze_m: Code postet man hier am besten als Text und nicht als Bild.
Eingerückt wird in Python immer mit 4 Leerzeichen pro Ebene, nicht zwei. Variablennamen schreibt man immer komplett klein.
In Python ist so ziemlich alles ein Objekt, bei `reader_obj` bietet also das Postfix `obj` keinen Mehrwert und man kann es weglassen.
Für Flags gibt es True und False, das durch 1 oder 0 zu ersetzen macht den Code schwer verständlich. Einbuchstabige Variablennamen sind auch schwer zu verstehen, für was steht `n`?
Was auch immer `findword` macht, es liefert hoffentlich bei gleichem Input gleichen Output, das also zigmal aufzurufen ist nicht sinnvoll, man sollte die Funktion jeweils einmal aufrufen.
Wenn man sich gegenseitig ausschließende if-Abfragen hat, benutzt man elif.
Alles in allem kommt man dann bei ungefähr so etwas raus:

Code: Alles auswählen

word_not_found = False
for row in reader:
    word_not_found = True
    if row:
        first_word = findword(row[0], n=1, sep=";")
        if first_word == "Top-Girokonto":
            word_not_found = False
            acount_number = findword(row[0], n=2, sep=";")
        elif first_word == "Buchungstag":
            ...
        first_word = findword(row[0], n=1, sep=" ")
        if first_word in ["Letzter", "Vorgemerkte"]:
            word_not_found = False
        ...

Re: Abfrage Liste if row is not None: mit Fehler

Verfasst: Mittwoch 4. Juni 2025, 20:50
von franze_m
Danke Siruis3,
das hat geholfen.