使用Ruby CSV更改导出的CSV中的字段分隔符/分隔符

是否可以将默认字段分隔符从逗号更改为其他字符,例如'|' 出口?

这是一个使用Tab键的例子。

到一个文件:

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

对一个string:

 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

在Ruby 1.9中,以前的CSV库被replace为FasterCSV 。

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

CSV::Writer有一个生成方法,它接受一个分隔符string作为参数。

 #!/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