Wie schreibe Spalten Header in eine CSV-Datei mit Ruby?
Bin ich Probleme beim schreiben von Spalten in eine csv-Datei mit Ruby. Unten ist mein code-snippet.
calc = numerator/denominator.to_f
data_out = "#{numerator}, #{denominator}, #{calc}"
File.open('cdhu3_X.csv','a+') do|hdr|
hdr << ["numerator","denominator","calculation\n"] #< column header
hdr << "#{data_out}\n"
end
Fügt der code die Spaltenüberschriften, um jede Zeile, und ich brauche nur es wird am oberen Rand jeder Spalte mit Daten. Ich habe gesucht hier und an anderen Orten, aber nicht finden können, eine klare Antwort auf die Frage zu, wie Ihre getan.
Jegliche Hilfe würde sehr geschätzt werden.
InformationsquelleAutor der Frage Joe | 2013-04-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde empfehlen die Nutzung des CSV-Bibliothek statt:
Wenn Sie nicht verwenden können, die
w
option, und Sie wirklich brauchen, diea+
(z.B., die Daten nicht alle auf einmal), dann könnten Sie versuchen, den folgenden trick:InformationsquelleAutor der Antwort knut
Der sauberste Weg, dies zu tun ist, die Datei zu öffnen einmal im Modus
'w'
schreiben Sie die Kopfzeilen, und schreiben Sie dann die Daten.Wenn es einigen technischen Grund, dass dies nicht möglich ist (z.B., die Daten nicht alle auf einmal), dann kann Ihnen der
IO#tell
- Methode auf die Datei, um das aktuelle Dateiposition. Wenn Sie die Datei öffnen zum Anhängen, die position eingestellt ist, an das Ende der Datei, so dass, wenn die aktuelle Datei position gleich null ist, dann wurde die Datei neu erstellt und hat keine Header:InformationsquelleAutor der Antwort sfstewman
Besten verarbeiten csv-Datei ist die Verwendung von Ruby
CSV
Modul.Ich hatte dasselbe problem nach dem Lesen
CSV
code kam ich auf diese Lösung finde ich am effektivsten.InformationsquelleAutor der Antwort Asad Ali