Schreiben Sie eine Python-Liste von Listen in eine csv-Datei
Ich habe eine lange Liste von Listen in der folgenden form: - - -
a = [[1.2,'abc',3],[1.2,'werew',4],........,[1.4,'qew',2]]
d.h. die Werte in der Liste sind von verschiedenen Arten -- float,int, strings.Wie Schreibe ich es in eine csv-Datei, so dass meine Ausgabe csv-Datei sieht aus wie
1.2,abc,3
1.2,werew,4
.
.
.
1.4,qew,2
Mögliche Duplikate von Speichern der Ergebnisse in eine csv-Datei mit Python
InformationsquelleAutor | 2012-12-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Python ' s built-in CSV-Modul kann dies leicht zu handhaben:
Diese übernimmt Ihre Liste ist definiert als
a
, wie es in Ihrer Frage. Sie können zwicken das genaue format der CSV-Ausgabe über die verschiedenen optionalen Parameterncsv.writer()
dokumentiert, wie in der library Referenz Seite weiter oben verlinkt.Mit Python 3 - open('output.csv', 'w', newline="). Bekomme ich eine zusätzliche Zeile, wenn ich das weglassen der newline-parameter. docs.python.org/3/library/csv.html#csv.writer
In Python ist3 hatte ich die Nutzung von open('output.csv', 'w', newline="")
WOW, dass python 3 Fehler sehr hilfreich. Danke @vladV (ein bytes-Objekt wie erforderlich ist, nicht 'str'). Es irgendwie Sinn macht, im Nachhinein gesehen, aber nicht informativ, wo sich das alles ansehen.
InformationsquelleAutor Amber
offiziellen docs: http://docs.python.org/2/library/csv.html
writerow
nicht mehrere Argumente.funktioniert einwandfrei mit mehreren Argumenten
>>> w sind.writerow("a", "b", "c") Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: writerow() takes exactly one argument (3)
entschuldigen Sie mich. ich vermisste []
InformationsquelleAutor Dmitry Zagorulkin
Könnten Sie
pandas
:pandas
wenn built-in-Bibliothekcsv
es tun können.ich mag pandas, weil seine mächtige
InformationsquelleAutor Akavall
Per csv.Schriftsteller in meiner sehr umfangreichen Liste nahm einiges an Zeit in Anspruch. Ich habe mich entschieden, pandas, war es schneller und leichter zu kontrollieren und zu verstehen:
Den guten Teil, den Sie ändern können jährigen, um eine bessere csv-Datei:
InformationsquelleAutor Dinidiniz
Wenn aus welchem Grund auch immer Sie wollte, es zu tun manuell (ohne ein Modul wie
csv
,pandas
,numpy
etc.):Natürlich, Ihre eigenen Rollen-version ist fehlerbehaftet und ineffizient ... das ist in der Regel, warum es ein Modul dafür. Aber manchmal schreiben Sie Ihre eigenen kann Ihnen helfen, zu verstehen, wie Sie arbeiten, und manchmal ist es einfach leichter.
InformationsquelleAutor tegan
Ambers ' s Lösung funktioniert auch gut für numpy-arrays:
InformationsquelleAutor Semjon Mössinger
Stellen Sie sicher, um anzugeben
lineterinator='\n'
beim erstellen der Schriftsteller, andernfalls wird eine zusätzliche leere Zeile geschrieben werden könnte, die in der Datei nach jeder Daten-Zeile ein, wenn sich die Datenquellen aus anderen csv-Datei...Hier ist meine Lösung:
InformationsquelleAutor yashi wang
Wie zu dumping-die Liste der Liste zu Gurke und wiederherstellen mit pickle-Modul? Es ist sehr bequem.
InformationsquelleAutor Good Will