RubyのCSV
クラスは、各行を反復することは非常に簡単です: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として行を返すように#shiftが発生します。 :配列の代わりに行オブジェクト
しかし、どのようにすることができますか私はヘッダー行をスキップし、単純な配列として行を返しますか?私は複雑なCSV::Row
オブジェクトが返されることを望んでいません。 CSVクラスから#shiftで
first = true
CSV.foreach(file) do |row|
if first
puts row
first = false
else
# code for other rows
end
end
check http://stackoverflow.com/a/37856698/473040 – equivalent8