Seite 1 von 1

CSV-Datei einlesen und " " entfernen

Verfasst: Mittwoch 17. August 2022, 21:09
von StefanM
Guten Abend allerseits,

ich bin neu was Python angeht, aber ich finde diese Programmiersprache ziemlich benutzerfreundlich :)

Leider hänge ich derzeit an diesem Problem:
Ich lese eine csv-Datei ein, die unglücklicherweise " " enthält - allerdings nicht alle Datensätze

Zum Beispiel:
wert1, "wert2", "wert3"
wert4, "wert5", wert6 etc

Wenn ich dann mittels einer for-Schleife die einzelnen Zeilen ausgeben will, möchte ich gern einzeln auf bestimmte Elemente zugreifen.

Hier mal mein aktuelles Skript:

Code: Alles auswählen

import csv

with open('datei.csv') as file:
    reader = csv.reader(file)
    
    for line in reader:
        word1 = line[0]
Das Problem ist, dass die replace-Funktion anscheinend nicht mit <List> funktioniert, so dass ich die variable line erst zu string casten muss.

Code: Alles auswählen

words = str(line)
words.replace(' " ', '')
print(words)
Aber die " " bleiben weiterhin da.
Auch google half nicht.

Das hier ging z.B. ebenfalls nicht (natürlich mit angepassten Variablennamen):

Code: Alles auswählen

a = a.replace('"', '')
'sajdkasjdsak asdasdasds'

# or, if they only occur at start and end...
a = a.strip('\"')
'sajdkasjdsak" "asdasdasds'

# or, if they only occur at start...
a = a.lstrip('\"')

# or, if they only occur at end...
a = a.rstrip('\"')
P.S. Ich verwende Python 3

Vielen Dank für jede Hilfe und beste Grüße

Re: CSV-Datei einlesen und " " entfernen

Verfasst: Mittwoch 17. August 2022, 22:57
von Sirius3
Im csv-Format haben die Anführungszeichen eine Bedeutung und der Reader interpretiert diese richtig, so dass sie in der Ausgabe nicht mehr enthalten sind.
Mit `replace` auf die Stringrepräsentation loszugehen ist immer der falsche Weg.
Welches konkrete Problem hast Du mit den Anführungszeichen? Bei welchem konkreten csv-Inhalt bekommst Du beim Lesen mit csv.reader welches Ergebnis, in dem noch Anführungszeichen vorhanden sind?