【问题标题】:Ruby CSV headers not in the first lineRuby CSV 标头不在第一行
【发布时间】:2015-04-27 07:41:47
【问题描述】:

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

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

【问题讨论】:

标签: ruby csv


【解决方案1】:

这是我的解决方案

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2021-06-12
      • 2017-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多