2016-04-29 31 views
0

我有一個CSV命名爲test.csv,其標題是這樣的:如何向特定列添加一行數據?

"Fruit","Weight","Color" 

在我的Ruby腳本,我有一個數組,看起來像這樣:

["Banana","Yellow"] 

如何使用Ruby的csv類列"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 

如果在你的現實生活中的例子你的陣列有更多的列(而不是兩個),並且想要偶爾添加幾個空列,則可以使用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 
相關問題