CSV-Datei einlesen und " " entfernen

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
StefanM
User
Beiträge: 2
Registriert: Mittwoch 17. August 2022, 20:38

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
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

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?
Antworten