我想用(headers:true选项)读取CSV文件,但我文件的前5行包含不需要的数据。所以我希望第6行成为标题并开始用第6行读取文件。
但是当我读到文件CSV.readlines("my_file.csv", headers: true).drop(5)
时,
它仍然使用第1行作为标题。如何将第6行设置为标题?
答案 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