Ruby CSV标头不在第一行

时间:2015-04-27 07:41:47

标签: ruby csv

我想用(headers:true选项)读取CSV文件,但我文件的前5行包含不需要的数据。所以我希望第6行成为标题并开始用第6行读取文件。

但是当我读到文件CSV.readlines("my_file.csv", headers: true).drop(5)时, 它仍然使用第1行作为标题。如何将第6行设置为标题?

2 个答案:

答案 0 :(得分:5)

在开始CSV之前预先读取垃圾线。

require 'csv'

File.open("my_file.csv") do |f|
  5.times { f.gets }
  csv = CSV.new(f, headers: true)
  puts csv.shift.inspect
end

答案 1 :(得分:2)

这是我的解决方案

require 'csv'

my_header = CSV.readlines("my_file.csv").drop(5).first

CSV.readlines("my_file.csv", headers: my_header).drop(6) do |row|

 do something .....
end