我想从Ruby打开一个CSV文件并添加一个新列,该列的值基于现有列的值。我想做这样的事情:
CSV.foreach(newf) do |row|
if(last_row != nil)
row << (row[CR_RATE_COL].to_f - last_row[CR_RATE_COL].to_f)/last_row[CR_RATE_COL].to_f
end
last_row = row
end
但是,此代码不会更改我打开的文件(因为它只读取)。 有没有办法在文件中读写?
答案 0 :(得分:0)
您需要将数据保存到文件中。你只是在内存中修改它。
使用一个单独的数组来存储行。 最后用该数组执行CSV.generate: http://ruby-doc.org/stdlib-2.2.0.preview1/libdoc/csv/rdoc/CSV.html#method-c-generate
参见writing =&gt;到该部分的文件中以获取完整示例