python, wie Sie schreiben, die Liste der Listen-Datei
Ich versuche zu schreiben, die eine Liste von Listen von strings in eine Datei.
Meine große Liste der forme:
1.0 '0:25.0' '1:50.0' '2:131.0' '3:202.0'
1.0 '0:2.0' '1:36.0' '2:131.0' '3:188.0'
-1.0 '0:56.0' '1:53.0' '2:55.0' '3:58.0'
-1.0 '0:50.0' '1:51.0' '2:48.0' '3:55.0'
and so on ...
die erste Spalte ist vom Typ int und die restlichen sind von Typ-str.
Habe ich versucht den folgenden code:
f = open('dataset', 'w')
for i in range(len(mylist[0]):
f.write(str(item) for item in mylist[i])
f.close()
Aber ich bekomme die folgende Fehlermeldung:
TypeError: expected a character buffer object
der Fehler aufgetreten in Zeile 3 des obigen Codes (f.write(...))
EDIT:
Habe ich versucht:
with open("train_data.csv", 'w') as f:
writer = csv.writer(f)
writer.writerows(listdata)
Aber, überraschenderweise, für die Zeilen, beginnend mit -1.0 bekomme ich nur die 1. 31 Elemente ( jede Zeile (Liste) enthält 362 Elemente). Ich habe keine Ahnung, warum dies geschieht.
InformationsquelleAutor Gamba Osaca | 2015-06-08
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde dies so tun.
Als Ergebnis bekomme ich diese in output.txt:
Verwenden Sie python 2.7 oder 3? Ich veränderte meine Antwort passt mit python 2.7, in diesem Fall ein f.seek(0) sollte das Problem behoben ist. Bitte probieren Sie es aus und lassen Sie mich wissen.
Eigentlich ohne seek(0) ok funktioniert auf meinem computer...
Danke es funktioniert jetzt, nachdem slightley ändern Sie Ihren code. Ich verwende python 2.7. Als Sie sagte, dass keine Notwendigkeit für
f.seek(0)
ich zog dief.write('\n')
aus der seconde-Schleife ein und fügen ein Leerzeichen '' nach dem schreiben jeder_string
InformationsquelleAutor alec_djinn
Verwenden Sie die csv-Bibliothek:
writerows
nimmt eine iterierbar von iterables, so dass der Inhalt jeder Teilliste wird geschrieben werden, um jede Zeile.Also für
list_of_lists = [[1,2,3],[4,5,6],[7,8,9]]
Ihr heraus.csv würde das so Aussehen:Und als Scironic kommentiert, die Sie übergeben können, Trennzeichen, was Sie wollen, ich.e
wr = csv.writer(f,delimiter=" ")
für einen Raum etc..delimiter
argument zu csv.Schriftsteller und ändern Sie das Trennzeichen an, was Sie wollen(Rohr, tilda, tab, space, nichts, wenn Sie wirklich wollen)yep, bearbeitet.
Ich habe versucht, diesen code vor, aber überraschend für die Zeilen, beginnend mit -1.0 bekomme ich nur die 1. 31 Elemente (jede Zeile (Liste) enthält 362 Elemente). Ich habe keine Ahnung, warum das so ist happennig.
können Sie hinzufügen, dass zu Ihrer ursprünglichen Frage. Scheint ziemlich wichtig
Scironic, Fertig
InformationsquelleAutor Padraic Cunningham