Sie können eine Zeichenfolge mit in ein Dateiobjekt konvertieren io.StringIO
und diese dann an das csv
Modul übergeben:
from io import StringIO
import csv
scsv = """text,with,Polish,non-Latin,letters
1,2,3,4,5,6
a,b,c,d,e,f
gęś,zółty,wąż,idzie,wąską,dróżką,
"""
f = StringIO(scsv)
reader = csv.reader(f, delimiter=',')
for row in reader:
print('\t'.join(row))
einfachere Version mit split()
auf Zeilenumbrüchen:
reader = csv.reader(scsv.split('\n'), delimiter=',')
for row in reader:
print('\t'.join(row))
Oder Sie können split()
diese Zeichenfolge einfach in Zeilen \n
als Trennzeichen und dann split()
jede Zeile in Werte umwandeln. Auf diese Weise müssen Sie sich jedoch des Zitierens bewusst sein. Daher wird die Verwendung des csv
Moduls bevorzugt.
Unter Python 2 müssen Sie StringIO
als importieren
from StringIO import StringIO
stattdessen.
.split('\n')
können Sie verwenden.splitlines()
.Einfach - das CSV-Modul funktioniert auch mit Listen:
quelle
.split('\n')
dies seltsame Dinge bewirkt, wenn Ihre Felder Zeilenumbrüche enthalten.Das offizielle Dokument für
csv.reader()
https://docs.python.org/2/library/csv.html ist sehr hilfreichquelle
So analysieren Sie eine CSV-Datei:
quelle
3, "4,5,6, 6
als drei Felder anstelle von fünf behandelt werden soll.Wie andere bereits betont haben, enthält Python ein Modul zum Lesen und Schreiben von CSV-Dateien. Es funktioniert ziemlich gut, solange die eingegebenen Zeichen innerhalb der ASCII-Grenzen bleiben. Wenn Sie andere Codierungen verarbeiten möchten, ist mehr Arbeit erforderlich.
Die Python-Dokumentation für das CSV-Modul implementiert eine Erweiterung von csv.reader, die dieselbe Schnittstelle verwendet, jedoch andere Codierungen verarbeiten kann und Unicode-Zeichenfolgen zurückgibt. Kopieren Sie einfach den Code und fügen Sie ihn aus der Dokumentation ein. Danach können Sie eine CSV-Datei wie folgt verarbeiten:
quelle
'utf-8-sig'
statt Codec'utf-8'
.Gemäß der Dokumentation:
Verwandeln Sie einfach Ihre Zeichenfolge in eine einzelne Elementliste.
Das Importieren von StringIO erscheint mir etwas übertrieben, wenn dieses Beispiel explizit in den Dokumenten enthalten ist.
quelle
https://docs.python.org/2/library/csv.html?highlight=csv#csv.reader
So kann ein
StringIO.StringIO()
,str.splitlines()
oder sogar ein Generator alles gut.quelle
Hier ist eine alternative Lösung:
Hier ist die Dokumentation
quelle
Verwenden Sie diese Option, um eine CSV in eine Liste zu laden
quelle
Panda ist eine ziemlich leistungsstarke und intelligente Bibliothek, die CSV in Python liest
Ein einfaches Beispiel hier, ich habe die Datei example.zip mit vier Dateien.
Sobald Sie Daten haben, können Sie diese bearbeiten, um mit einer Liste oder anderen Formaten zu spielen.
quelle