如何修改ruby中的退出csv列?

时间:2017-01-26 05:21:24

标签: ruby csv

我有一个CSV文件。在csv中,某些字段是空白的。我想用一些值更新这些字段。我试过以下但没有运气。

CSV.foreach("/home/mypc/Desktop/data.csv", { encoding: "UTF-8", headers: true, header_converters: :symbol, converters: :all}).with_index do |row,i|
   if row[:images].nil?
      row[:images] << ['im1']
   end
end

1 个答案:

答案 0 :(得分:1)

row[:images] ||= "im1"
如果您的行的images单元格为空,则会将"im1"单元格设置为require 'csv' write_parameters = { write_headers: true, headers: %w(images name) } read_parameters = { encoding: 'UTF-8', headers: true, header_converters: :symbol, converters: :all } CSV.open('new_data.csv', 'w+', write_parameters) do |new_csv| CSV.foreach('data.csv', read_parameters) do |row| row[:images] ||= 'im1' new_csv << row end end

如果要编写包含更新单元格的新CSV文件,可以使用:

data.csv

使用images,name im2,name2 im3,name3 ,name1 im4,name4 im5,

new_data.csv

images,name im2,name2 im3,name3 im1,name1 im4,name4 im5, 变为:

new_data.csv

如果您确定 data.csv已正确撰写,则可以删除new_data.csv并将data.csv重命名为data.csv。< / p>

我不会写#header, #footer{ display: none; } 到位。如果出现任何问题,您将丢失数据。