2010-12-10 11 views
3

In Ruby, was ist der effizienteste Weg, um eine Datei von Tab-getrennte Werte in CSV zu konvertieren?TSV -> CSV in Ruby

Antwort

4

Verwenden FasterCSV

require 'rubygems' 
require 'fastercsv' 

FasterCSV.open("path/to/file.csv", "w") do |csv| 
    File.open("/path/to/file.tsv") do |f| 
    f.each_line do |tsv| 
     tsv.chomp! 
     csv << tsv.split(/\t/) 
    end 
    end 
end 
+0

Sollten Sie nicht richtig sein Parsen als auch den TSV? '" foo \ tbar "\ t" baz "' – deceze

+2

@Bill FasterCSV ersetzte das vorherige CSV-Modul in Ruby 1.9, also würden Sie in 1.9 "csv" anfordern und dann alles überprüfen. Das OP erwähnte nicht, welche Version sie benutzten. –

+1

@deceze - Ich habe noch nie von einem TSV-Format gehört, das "eingebettete" eingebettete Tabs erlaubt - nur das Teilen auf der Registerkarte sollte es tun. –