我有一个看起来像这样的文件:
milk 7,dark 0,white 0,sugar free 1
milk 0,dark 3,white 0,sugar free 0
milk 0,dark 3,white 0,sugar free 5
milk 0,dark 1,white 5,sugar free 3
该CSV文件中没有标题。但是,每次我在Numbers
之类的程序中打开此文件时,它看起来都像这样:
这是我将数据写入CSV的问题还是CSV程序的问题...可能是因为分隔符的选择错误。
我写的代码如下:
def self.write(output_path:, data:, write_headers: false)
CSV.open(output_path, "w", write_headers: write_headers) do |csv|
data.each do |row|
csv << row
end
end
end
write_headers
部分甚至可以做什么?
答案 0 :(得分:1)
这是我将数据写入CSV的问题还是CSV程序的问题...可能是因为分隔符的选择错误。
您的CSV数据非常好。 CSV只是一个宽松的标准,没有在文件中标记标题行的概念。在语法上无法将其与任何其他行区分开。
write_headers
部分甚至可以做什么?
它与headers
一起使用。来自CSV.new
的文档:
:write_headers
设置true
和:headers
时,标题行将添加到输出中。
示例:
require 'csv'
CSV.generate(headers: %w[a b c], write_headers: true) do |csv|
csv << [1, 2, 3]
csv << [4, 5, 6]
end
#=> "a,b,c\n1,2,3\n4,5,6\n"
相对于:
CSV.generate(headers: %w[a b c], write_headers: false) do |csv|
csv << [1, 2, 3]
csv << [4, 5, 6]
end
#=> "1,2,3\n4,5,6\n"
答案 1 :(得分:0)
<video video-player src="https://upload.wikimedia.org/wikipedia/commons/transcoded/a/a4/BBH_gravitational_lensing_of_gw150914.webm/BBH_gravitational_lensing_of_gw150914.webm.480p.webm" autoplay controls></video>
设置为true时,将在输出中添加标题行。我认为在选项哈希中设置write_headers
可以解决您的问题(当设置为true时,它将CSV的第一行作为标题)