Ich habe eine lange Liste von Listen der folgenden Form ---
a = [[1.2,'abc',3],[1.2,'werew',4],........,[1.4,'qew',2]]
Das heißt, die Werte in der Liste sind von unterschiedlicher Art - float, int, strings. Wie schreibe ich sie in eine CSV-Datei, damit meine Ausgabe-CSV-Datei so aussieht
1.2,abc,3
1.2,werew,4
.
.
.
1.4,qew,2
Antworten:
Das in Python integrierte CSV-Modul kann dies problemlos handhaben:
Dies setzt voraus, dass Ihre Liste so definiert ist
a
, wie es in Ihrer Frage steht. Sie können das genaue Format der Ausgabe-CSV über die verschiedenen optionalen Parametercsv.writer()
so anpassen, wie es auf der oben verlinkten Bibliotheksreferenzseite dokumentiert ist.Update für Python 3
quelle
Sie könnten verwenden
pandas
:quelle
pandas
wenn die eingebaute Bibliothekcsv
dies kann.offizielle Dokumente: http://docs.python.org/2/library/csv.html
quelle
writerow
nimmt nicht mehrere Argumente.Wenn aus irgendeinem Grund wollte man es manuell tun (ohne ein Modul wie mit
csv
,pandas
,numpy
etc.):Natürlich kann das Rollen Ihrer eigenen Version fehleranfällig und ineffizient sein. Deshalb gibt es normalerweise ein Modul dafür. Aber manchmal hilft es Ihnen, Ihre eigenen zu schreiben, um zu verstehen, wie sie funktionieren, und manchmal ist es einfach einfacher.
quelle
Die Verwendung von csv.writer in meiner sehr großen Liste hat eine ganze Weile gedauert. Ich entschied mich für Pandas, es war schneller und einfacher zu kontrollieren und zu verstehen:
Das Gute daran ist, dass Sie etwas ändern können, um eine bessere CSV-Datei zu erstellen:
quelle
Die Lösung von Ambers eignet sich auch gut für numpy Arrays:
quelle
Wenn Sie dafür kein
csv
Modul importieren möchten , können Sie eine Liste von Listen in eine CSV-Datei schreiben, indem Sie nur Python-integrierte Funktionen verwendenquelle
Stellen Sie sicher, dass Sie angeben,
lineterinator='\n'
wann Sie den Writer erstellen. Andernfalls wird möglicherweise nach jeder Datenzeile eine zusätzliche leere Zeile in die Datei geschrieben, wenn die Datenquellen aus einer anderen CSV-Datei stammen ...Hier ist meine Lösung:
quelle
Wie wäre es, wenn Sie die Liste der Liste in pickle ablegen und mit dem pickle-Modul wiederherstellen ? Es ist sehr praktisch.
quelle
Beim Befolgen der Beispiele mit einem Zeilenumbruchparameter in der Funktion csv.writer wurde eine Fehlermeldung angezeigt. Der folgende Code hat bei mir funktioniert.
quelle