Ruby 按数组中的列写入 CSV 文件?

标签 ruby arrays csv

我想从几个数组生成一个 csv 文件。 这是我的代码:

require 'csv'
CSV.open("csvfile.csv", "ab") do |csv|
csv << [array1]
csv << [array2]
csv << [array3]
end

我需要这个输出格式:

array1,array2,array3
array1,array2,array3
array1,array2,array3
array1,array2,array3
array1,array2,array3

感谢您的帮助

最佳答案

根据您的帖子,您的意思是 array1、array2、array3 存储表的 3 列的值,并且行索引由这些数组中的值的索引来标识?您可以首先将列分组在一起,对二维数组进行转置,然后逐行写入 CSV 文件。

require 'csv'
table = [array1, array2, array3].transpose
CSV.open('csvfile.csv', 'ab') do |csv|
    table.each do |row|
        csv << row
    end
end

您将获得如下所示的 csv 文件:

array1[0], array2[0], array3[0]
array1[1], array2[1], array3[1]
array1[2], array2[2], array3[2]
...

关于Ruby 按数组中的列写入 CSV 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15598658/

相关文章:

c++ - 大数组上的段错误

sql - 如何选择与 json 字段数组中的值匹配的记录?

python - 读取 CSV 文件并确定数据结构

python - 只有 unicode 字符串的第一个字符被写入 csv

c++ - 仅使用指针打印出数组中的所有其他字符

parsing - 带有转义逗号的 Clojure csv

ruby - 为什么 `<=` 和 `>=` 与 `<` 、 `>` 和 `==` 无关?

ruby - 在 ruby​​ 细化 block 中组织长代码的最佳方法

c - Id2sym & symbol.object_id

ruby - 动态定义方法中的默认参数