我有一个数组info
,我正在阅读每个项目并将其添加到CSV文件中,如下所示:
info.each do |listing|
CSV.open(csvfile, "a+") do |csv|
csv << listing
end
end
但是,我想要做的是当CSV为空时(即这是添加到此特定CSV的第一行)我将在添加任何数据之前添加标头。标题是一行只有数据类别:名字,姓氏,地址等
如果我将它添加到该循环中,它将在每个记录之后添加它。
此外,无法保证数组中的第一项将成为CSV中的第一项。例如,迭代器处于i[10]
时,CSV可能为空。
我该如何处理?
答案 0 :(得分:1)
您可以检查CSV::Table是否包含任何行:
require 'csv'
filepath = File.join('.', 'test')
csv = CSV.open(filepath, 'wb', col_sep: ';', quote_char: "\x00")
csv_table = CSV.table(filepath)
csv_table.count
#=> 0