当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby CSV.csv << row用法及代码示例


本文简要介绍ruby语言中 CSV.csv 的用法。

用法

csv << row → self
也别名为:add_rowputs

self 追加一行。

  • 参数 row 必须是 Array 对象或 CSV::Row 对象。

  • 输出流必须打开才能写入。

附加数组:

CSV.generate do |csv|
  csv << ['foo', 0]
  csv << ['bar', 1]
  csv << ['baz', 2]
end # => "foo,0\nbar,1\nbaz,2\n"

附加 CSV::行:

headers = []
CSV.generate do |csv|
  csv << CSV::Row.new(headers, ['foo', 0])
  csv << CSV::Row.new(headers, ['bar', 1])
  csv << CSV::Row.new(headers, ['baz', 2])
end # => "foo,0\nbar,1\nbaz,2\n"

CSV::Row 对象中的标题未附加:

headers = ['Name', 'Count']
CSV.generate do |csv|
  csv << CSV::Row.new(headers, ['foo', 0])
  csv << CSV::Row.new(headers, ['bar', 1])
  csv << CSV::Row.new(headers, ['baz', 2])
end # => "foo,0\nbar,1\nbaz,2\n"

如果 row 不是数组或 CSV::Row,则引发异常:

CSV.generate do |csv|
  # Raises NoMethodError (undefined method `collect' for :foo:Symbol)
  csv << :foo
end

如果未打开输出流进行写入,则引发异常:

path = 't.csv'
File.write(path, '')
File.open(path) do |file|
  CSV.open(file) do |csv|
    # Raises IOError (not opened for writing)
    csv << ['foo', 0]
  end
end

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 CSV.csv << row。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。