RubyのCSV
クラスを使用すると、各行を非常に簡単に反復できます。
CSV.foreach(file) { |row| puts row }
ただし、これには常にヘッダー行が含まれるため、出力として取得します。
header1, header2
foo, bar
baz, yak
ヘッダーは必要ありません。さて、電話すると…</ p>
CSV.foreach(file, :headers => true)
私はこの結果を得る:
#<CSV::Row:0x10112e510
@header_row = false,
attr_reader :row = [
[0] [
[0] "header1",
[1] "foo"
],
[1] [
[0] "header2",
[1] "bar"
]
]
>
もちろん、ドキュメントには次のように書かれているためです。
この設定により、#shiftは行を配列ではなくCSV::Rowオブジェクトとして返します。
しかし、ヘッダー行をスキップして、行を単純な配列として返すにはどうすればよいですか?CSV::Row
複雑なオブジェクトを返してほしくない。
私は絶対にこれをしたくありません:
first = true
CSV.foreach(file) do |row|
if first
puts row
first = false
else
# code for other rows
end
end