Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在Ruby中读取CSV时,如何跳过标题行?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Ignore header line when parsing CSV file5个
Ruby的 CSV课程可以很容易地遍历每一行:
CSV.foreach(filE) { |row| puts row }

但是,这总是包括标题行,所以我会得到作为输出:

header1,header2
foo,bar
baz,yak

我不想要标题.现在,当我打电话给…

CSV.foreach(file,:headers => truE)

我得到这个结果:

#<CSV::row:0x10112e510
    @header_row = false,attr_reader :row = [
        [0] [
            [0] "header1",[1] "foo"
        ],[1] [
            [0] "header2",[1] "bar"
        ]
    ]
>

当然,因为文档说:

但是,如何跳过标题行,将行作为一个简单的数组返回?我不希望返回复杂的CSV :: Row对象.

我绝对不想这样做:

first = true
CSV.foreach(filE) do |row|
  if first
    puts row
    first = false
  else
    # code for other rows
  end
end

解决方法

看看 #shift从CSV类:

包装的字符串和IO的主要读取方法是从数据源中提取的一行,并将其解析并返回为字段数组(如果不使用标题行)

一个例子:

require 'csv'

# CSV FILE
# name,surname,LOCATIOn
# Mark,Needham,Sydney
# David,Smith,London

def parse_csv_file_for_names(path_to_csv)
  names = []  
  csv_contents = CSV.read(path_to_csv)
  csv_contents.shift
  csv_contents.each do |row|
    names << row[0]
  end
  return names
end

大佬总结

以上是大佬教程为你收集整理的在Ruby中读取CSV时,如何跳过标题行?全部内容,希望文章能够帮你解决在Ruby中读取CSV时,如何跳过标题行?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。