如何将数组写入带有每个值的引号的文件?

时间:2015-08-22 22:39:25

标签: ruby csv

我正在尝试将数组写入CSV文件。在过去,我刚刚使用过:

my_array.to_csv

和报价被诅咒。但我必须遵守这个特定的文件,我写了CSV"标准"。这意味着,在这里:

 a,b,c,"d, with a comma",e

之前很满意,现在我必须输出:

"a","b","d, with a comma","e"

必须有一些简单的方法,但我无法找到它。

我试过了:

x.map{|v| '"' + v + '"'}.to_csv    

但文件最终以:

"""a""","""b""","""c""" 

我尝试了很多变化。我总是最终得到3个引号字符。

唯一有效的是:

fout.puts x.map{|v| "\"#{v}\"" }.to_csv.gsub('"""','"')

当然这很可怕。任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:5)

只需添加一个选项:

my_array.to_csv(force_quotes:true)

您可以查看更多选项here

答案 1 :(得分:-1)

更好的方式跟随 最初假设是一个数组 a ="'" + a.join("','") + "'"