gpt4 book ai didi

ruby - 如何将二维数组直接转储到 CSV 文件中?

转载 作者:数据小太阳 更新时间:2023-10-29 06:58:33 26 4
gpt4 key购买 nike

我有这个二维数组:

arr = [[1,2],[3,4]]

我通常这样做:

CSV.open(file) do |csv| 
arr.each do |row|
csv << row
end
end

除了逐行添加之外,还有更简单或直接的方法吗?

最佳答案

假设您的数组只是数字(没有可能包含逗号的字符串),那么:

File.open(file,'w'){ |f| f << arr.map{ |row| row.join(',') }.join('\n') }

一个巨大的字符串写入磁盘,不涉及 CSV 库。

或者,使用 CSV 库来 correctly escape each row :

require 'csv'
# #to_csv automatically appends '\n', so we don't need it in #join
File.open(file,'w'){ |f| f << arr.map(&:to_csv).join }

如果您必须经常这样做并且代码困扰您,您可以将其打上猴子补丁:

class CSV
def self.dump_array(array,path,mode="rb",opts={})
open(path,mode,opts){ |csv| array.each{ |row| csv << row } }
end
end
CSV.dump_array(arr,file)

关于ruby - 如何将二维数组直接转储到 CSV 文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10903985/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com