虽然人们使用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的信息然后将其写入文件,但我似乎无法做到:/
我做错了什么?
答案 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)