如何从Ruby CSV实例

时间:2015-09-25 18:10:05

标签: ruby csv

虽然人们使用Ruby CSV类方法似乎更常见,但我有机会使用CSV实例,但它完全不合作。

我想要做的是创建一个CSV实例,向其添加一些行,然后能够检索所有这些行并将它们写入文件。遗憾的是,下面的代码根本无法正常工作。

require 'csv'

csv = CSV.new('', headers: ['name', 'age'])
csv.read # Apparently I need to do this so that the headers are actually read in.

csv.add_row(['john', '22'])
csv.add_row(['jane', '24'])
csv.read

csv.to_a
csv.to_s

所有我希望能够检索我放入csv的信息然后将其写入文件,但我似乎无法做到:/

我做错了什么?

1 个答案:

答案 0 :(得分:3)

您需要使用CSV#rewind

以下是样本:

require 'csv'

csv = CSV.new(File.new("data1.csv", "r+"), headers: ['name', 'age'], write_headers: true)

csv.add_row(['john', '22'])
csv.add_row(['jane', '24'])

p csv.to_a  # Empty array

csv.rewind

p csv.to_a  # Array with three CSV::Row objects (including header)