使用 Ruby CSV 更改导出的 CSV 中的字段分隔符/分隔符
Posted
技术标签:
【中文标题】使用 Ruby CSV 更改导出的 CSV 中的字段分隔符/分隔符【英文标题】:Changing field separator/delimiter in exported CSV using Ruby CSV 【发布时间】:2011-06-16 20:23:27 【问题描述】:是否可以将默认字段分隔符从逗号更改为其他字符,例如 '|'
用于导出?
【问题讨论】:
【参考方案1】:在 Ruby 1.9 中,之前的 CSV 库已替换为 FasterCSV。
require "csv"
output = CSV.read("test.csv").map do |row|
row.to_csv(:col_sep => "|")
end
puts output
【讨论】:
【参考方案2】:这是一个使用选项卡的示例。
到文件:
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
【讨论】:
【参考方案3】: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
【讨论】:
这只适用于 Ruby 1.8,在 1.9 中他们摆脱了 Writer 类。以上是关于使用 Ruby CSV 更改导出的 CSV 中的字段分隔符/分隔符的主要内容,如果未能解决你的问题,请参考以下文章
ruby 这是将desk.com中的数据导出到CSV文件的非常基本的脚本。
Ruby-on-Rails 3.2:导出包含大型数据集(100,000 条记录)的 CSV