2016-04-29 16 views
0

私はCSVは、そのヘッダを次のようになりtest.csv、名前の持っている:私はRubyのcsvクラスを使用するにはどうすればよい特定の列にデータ行を追加するにはどうすればよいですか?

["Banana","Yellow"] 

:私のRubyスクリプトで

"Fruit","Weight","Color" 

を、私はこのようになります配列を持っています"Banana"を列"Fruit"に、"Yellow"を列"Color"に入れますか?ご例えば

+1

'CS VはRubyで配布されるクラスであり、 'require 'csv''がロードされます。私はCSVの宝石があると思っていますが、あなたはおそらくそのクラスを指しています。 –

答えて

3

CSV.open("path/to/file.csv", "wb") do |csv| 
    fruit, color = ["Banana","Yellow"] 
    csv << [fruit, nil, color] 
end 

そして、あなたは同じ構造を持つ複数の行がある場合:

CSV.open("path/to/file.csv", "wb") do |csv| 
    rows.each do |row| 
    # Assuming row looks like ["Banana", "Yellow"] 
    fruit, color = row 
    csv << [fruit, nil, color] 
    end 
end 

をそして、あなたの実際の生活の例であれば、あなたの配列は(だけでなく、2より多くの列を持っています)いくつかの空の列を散発的に追加する場合は、Array#insertメソッドを使用できます。

CSV.open("path/to/file.csv", "wb") do |csv| 
    rows.each do |row| 
    # Run one line like this for every empty column you want to add 
    # Note that it changes the value of `row`, so if you'd like to 
    # keep it untouched, consider using `dup` 
    row.insert(1, nil) 
    csv << row 
    end 
end 
関連する問題