libro
www.tuyano.com
初心者のためのRubyプログラミング入門

CSVファイル・アクセス (2/4)

作成:2013-03-18 07:31
更新:2013-03-18 07:31

■CSVデータをまとめて取り出す

foreachはCSVデータを行単位で取り出しましたが、まとめて一挙に取り出すこともできます。これは「read」というメソッドを使います。使い方はとても簡単。
変数 = CSV.read(ファイル)

たったこれだけです。これですべてのデータをまとめて取り出すことができます。

取り出されたデータは、「配列の配列」の形になっています。例えば、こんな具合にスクリプトを実行してみましょう。
# coding: utf-8

require 'csv'
datas = CSV.read('sample.csv')
puts datas
puts('sample.csv を読み込みました。')

これですべてのデータが出力されます。笑えるほど簡単ですね。――もちろん、実際には配列の配列の形でそのまま使うことはないでしょうから、
# coding: utf-8

require 'csv'
datas = CSV.read('sample.csv')
datas.each do |data|
    puts data[0] # とりあえず名前だけ
end
puts('sample.csv を読み込みました。')

こんな具合に、取り出したデータの配列から各行の配列を取り出し、そこから必要に応じて値を取り出し処理する、ということになるでしょう。全データを処理するのであれば、先のforeachとさほど代わりはありませんね。

ただし、こちらは配列の配列になっていますから、例えば特定の番号を指定してデータを取り出したりするには向いています。「偶数列のデータだけ取り出す」というような処理はこちらのほうがやりやすいでしょう。両方のやり方を覚えておくとよいでしょう。


※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

※関連コンテンツ

「初心者のためのRubyプログラミング入門」に戻る