csv leere zeilen entfernen bzw. beim einlesen ignorieren

  • Hallo,

    ich steh mal wieder auf dem Schlauch

    ich bräuchte Hilfe bei dem entfernen von leeren Zeilen in eine .csv ohne eine neu Datei zu schreiben,

    so wie das bei einlesen einer .csv leere zeilen ignoriert werden.

    ich nutze das csv modul

    schreiben in die csv:

    Code
    with open('test.csv', 'a', newline='') as f:
        writer = csv.writer(f, dialect = 'excel', delimiter = ';')
        writer.writerow(fields)
        writer.close()

    lesen csv:

    Code
    with open('test.csv') as CSV_Lesen:
        CSV_Lesen = csv.reader(CSV_Lesen,  delimiter=";")
        for row in CSV_Lesen:
            ....
  • csv leere zeilen entfernen bzw. beim einlesen ignorieren? Schau mal ob du hier fündig wirst!

  • Mein Problem ist das ich ein Programm habe was immer wieder in verschiedene csv schreibt.

    Das Programm läuft 24/7 und manchmal aller paar Tage habe ich eine leere Zeile in der csv was dann wieder zu fehlen beim Einlesen und addieren etc. von spalten führt.

    Es ist für mich nicht zu erkennen warum das manchmal passiert das es willkürlich ist.

  • Hallo,

    was heißt denn in dem Fall genau "leere Zeile"? Ist die Zeile wirklich komplett leer, also nur ein Linefeed am Ende? Oder sind in der Zeile nur Semikolons (wenn du die als Trenner hast)?

    Ich würde aber eher da ansetzen, wo das CSV geschrieben wird, als das im Nachhinein zu fixen. Das ist ja nur symptomatisch und keine echte Lösung...

    Gruß, noisefloor

  • so sollte es klappen:

    Beispiel csv Datei: /home/pi/scripts/test.csv

    Test Script /home/pi/scripts/readcsv.py

    Aufruf:python3 python3 /home/pi/scripts/readcsv.py

    Ergebnis:

    Code
    ['1', '2', '3', '4']
    ['5', '6', '7', '8']
    ['5', '6', '7', '45', '2']
    ['111', '111', '222', '333', '444']
    ['444', '444', '444', '444']
    ['555', '555', '55', '55', '']
    ['99', '99']
    Leere Zeilen entfernt:
    4

    Doc.

    2 Mal editiert, zuletzt von Dr.Death (20. März 2021 um 17:27)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!