Changing field separator/delimiter in exported CSV using Ruby CSV Changing field separator/delimiter in exported CSV using Ruby CSV ruby ruby

Changing field separator/delimiter in exported CSV using Ruby CSV


Here's an example using a tab instead.

To a file:

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

To a string:

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

Here's the current documentation on CSV: http://ruby-doc.org/stdlib/libdoc/csv/rdoc/index.html


The previous CSV library was replaced with FasterCSV in Ruby 1.9.

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


CSV::Writer has a generate method, which accepts a separator string as argument.

#!/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']  endoutfile.close