使用 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

ruby 将您帐户的Netflix评级划分为CSV,因为Netflix是一个鸡巴,不会让您导出/集成它们。

如何更改csv导出的列的格式-Laravel Excel

将 CSV 流从 Ruby 上传到 S3

php WPForms:更改导出CSV文件分隔符。