有一个数组,如何在csv中正确推导出一个文件?
arr1 = [["A","B"], ["C","D"], ["E","F"], ["G","H"]]
csv中的预期结果:
A,B
C,D
E,F
G,H
我这样做:
out_file = File.open('file.csv', 'w')
arr1.each_index do |inx|
arr1[inx].each do |val|
out_file.puts val
end
end
但是,在一栏中打印所有内容:
A
B
C
D
..
如果通过p val
输出到控制台,则每个值都是/ r:
"A\r"
"B\r"
"C\r"
"D\r"
我做错了什么?
答案 0 :(得分:3)
你不是写入文件。
require 'csv'
CSV.open('file.csv', 'w') do |csv|
arr1.each { |ar| csv << ar }
end
答案 1 :(得分:0)
有效,
require 'csv'
CSV.open('file.csv', 'w') do |csv|
arr1.each { |ar| csv << ar }
end
但有必要在它面前完成:
arr1.each_index do |inx|
arr1[inx].each do |val|
val.chop!
end
end
删除换行符\r
它有效:
File.write('file.csv', [["A","B"], ["C","D"], ["E","F"], ["G","H"]].map { |e| e.join(",") }.join($/))