我有以下数组:
csv_array = [1,2,3,4,5,6,7,8,9,10]
我需要将数组中的每个项目写入单独的CSV行,每组4个。如果我这样做
CSV.open("Content_File.csv", "wb") do |csv|
csv << csv_array
end
我得到一行中整个数组的csv文件。
我需要我的csv文件看起来像这样:
1,2,3,4
5,6,7,8
9,10
如何编写ruby脚本来说明
csv << csv_array[0..3]
csv << csv_array[4..7]
依此类推,无论数组中有多少项?我使用的是ruby 1.9.3。
答案 0 :(得分:4)
csv_array = [1,2,3,4,5,6,7,8,9,10]
csv_array.each_slice(4) do |chunk|
p chunk
end
# >> [1, 2, 3, 4]
# >> [5, 6, 7, 8]
# >> [9, 10]
答案 1 :(得分:2)
尝试
csv_array.each_slice(4) {|a| csv.push(a)}
下面:
csv_array = [1,2,3,4,5,6,7,8,9,10]
csv = []
csv_array.each_slice(4) {|a| csv.push(a)}
csv
# => [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10]]