2011-01-27 152 views

回答

84

下面是使用tab代替的示例。

到文件:

CSV.open("myfile.csv", "w", {:col_sep => "\t"}) do |csv| 
    csv << ["row", "of", "CSV", "data"] 
    csv << ["another", "row"] 
    # ... 
end 

字符串:

csv_string = CSV.generate(:col_sep => "\t") do |csv| 
    csv << ["row", "of", "CSV", "data"] 
    csv << ["another", "row"] 
    # ... 
end 

下面是關於CSV當前文檔:http://ruby-doc.org/stdlib/libdoc/csv/rdoc/index.html

4

CSV::Writer有一個generate方法,它接受一個分隔符字符串作爲參數。

#!/usr/bin/env ruby 

# +++ ruby 1.8 version +++ 

require "csv" 

outfile = File.open('csvout', 'wb') 
    CSV::Writer.generate(outfile, '|') do |csv| 
    csv << ['c1', nil, '', '"', "\r\n", 'c2'] 
    end 
outfile.close 
+3

這隻適用於Ruby 1.8,在1.9中他們擺脫了Writer類。 – 2011-01-27 21:17:31

6

上一個CSV庫是在紅寶石1.9與FasterCSV取代。

require "csv" 

output = CSV.read("test.csv").map do |row| 
    row.to_csv(:col_sep => "|") 
end 
puts output