是否可以将默认字段分隔符从逗号更改为其他某个字符,例如'|'
用于导出?
答案 0 :(得分:100)
以下是使用标签的示例。
到文件:
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
答案 1 :(得分:7)
以前的CSV库已被Ruby 1.9中的FasterCSV取代。
require "csv"
output = CSV.read("test.csv").map do |row|
row.to_csv(:col_sep => "|")
end
puts output
答案 2 :(得分: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