Wie teile ich eine Zeile durch Kommas, aber ignoriere Kommas innerhalb von Anführungszeichen Python

Mögliche Duplikat:
Wie lese ich eine CSV-Linie mit "?

Ich habe eine Reihe von verwandten Fragen gesehen, aber keiner hat direkt angesprochen, was ich versuche zu tun. Ich lese in Textzeilen aus einer CSV-Datei.

Alle Artikel sind in Anführungszeichen und einige haben zusätzliche Kommas innerhalb der Anführungszeichen. Ich möchte die Linie entlang Kommas teilen, aber ignoriere die Kommas in Zitaten. Gibt es einen Weg, dies zu tun innerhalb von Python, die nicht erfordert eine Reihe von Regex-Anweisungen.

Ein Beispiel ist:

"114111","Planes,Trains,and Automobiles","50","BOOK" 

Die ich gern in 4 getrennte Variablen von Werten analysiert hätte:

 "114111" "Planes,Trains,and Automobiles" "50" "Book" 

Gibt es eine einfache Option in line.split() dass ich fehlt?

2 Solutions collect form web for “Wie teile ich eine Zeile durch Kommas, aber ignoriere Kommas innerhalb von Anführungszeichen Python”

Versuche nicht, das Rad neu zu erfinden.

Wenn Sie Zeilen aus einer CSV-Datei lesen möchten, verwenden Sie das csv Modul von Python aus der Standardbibliothek.

Beispiel:

 > cat test.py import csv with open('some.csv') as f: reader = csv.reader(f) for row in reader: print(row) > cat some.csv "114111","Planes,Trains,and Automobiles","50","BOOK" > python test.py ['114111', 'Planes,Trains,and Automobiles', '50', 'BOOK'] [] 

Job erledigt!

Sie können sich wahrscheinlich auf "," das ist "[quote] [comma] [quote]"

Die andere Option kommt mit einem Escape-Charakter, also wenn jemand ein Komma in den String einbetten will, was sie tun \ c und wenn sie einen Backslash wollen sie \\. Dann musst du die Saite aufteilen und dann vor der Verarbeitung entreißen.

  • Python TypeError: 'str' unterstützt die Pufferschnittstelle nicht
  • Split-String auf Kommas, aber ignoriere Kommas in Doppel-Anführungszeichen?
  • Zusammenführen von 2 csv-Datensätzen mit Python eine gemeinsame ID-Spalte - eine csv hat mehrere Datensätze für eine eindeutige ID
  • Konvertieren von JSON in CSV mit Python (Idle)
  • Python - AttributeError: 'list' Objekt hat kein Attribut
  • Python-Download-Dateien durch Links in csv gespeichert
  • Wie füge ich eine neue Datenzeile zu einer CSV-Datei mit Python hinzu?
  • Python-Skript, um num Zeilen in allen Dateien im Verzeichnis zu zählen
  • Was ist die pythonische Methode, um CSV-Datei-Daten als Zeilen von namedtuples zu lesen?
  • Wie lese ich UTF-8 Dateien mit Pandas?
  • Fehler beim Schreiben von Daten in CSV aufgrund eines Ascii-Fehlers in Python
  • Python ist die beste Programmiersprache der Welt.