Ruby CSV标头不在第一行

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

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

在启动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 

这是我的解决方案

 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