Ruby - 用于读写的开放式CSV文件

时间:2015-06-01 14:45:27

标签: ruby csv

我想从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

但是,此代码不会更改我打开的文件(因为它只读取)。 有没有办法在文件中读写?

1 个答案:

答案 0 :(得分:0)

您需要将数据保存到文件中。你只是在内存中修改它。

使用一个单独的数组来存储行。 最后用该数组执行CSV.generate: http://ruby-doc.org/stdlib-2.2.0.preview1/libdoc/csv/rdoc/CSV.html#method-c-generate

参见writing =&gt;到该部分的文件中以获取完整示例