Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】CSV::each()メソッドの使い方

eachメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

eachメソッドは、Rubyの標準ライブラリであるCSVクラスに属し、CSV形式のデータを効率的に1行ずつ処理するために使用されるメソッドです。このメソッドは、CSVデータに対して繰り返し処理(イテレーション)を実行し、通常ブロックを受け取ります。ブロックが与えられた場合、CSVファイルの各行が順に読み込まれ、その行のデータがブロックに渡されます。ブロック内では、渡された1行のデータに対して任意の操作を行うことができます。

各行のデータは、デフォルトでは文字列の配列として渡されますが、オプション設定により、CSV::Rowオブジェクトとして受け取ることも可能です。CSV::Rowオブジェクトは、ヘッダ行の列名をキーとしてデータにアクセスできるため、コードの可読性が向上し、特定の列のデータを扱う際に便利です。

CSV.eachメソッドは、ファイルパスを引数として受け取り、CSVファイルを開いて処理を開始します。ヘッダの有無、区切り文字、エンコーディングといった様々な解析オプションをハッシュで指定することで、多様な形式のCSVデータに対応できます。

ブロックが指定されない場合、eachメソッドはEnumeratorオブジェクトを返します。これにより、mapselectといった他のイテレータメソッドと連結して、より柔軟なデータ処理パイプラインを構築することが可能です。大量のCSVデータをメモリにすべて読み込むことなく、ファイルから直接効率的に処理を行いたい場合に特に有用であり、データ分析、変換、データベースへのインポートなど、幅広い用途で活用されます。

構文(syntax)

1require 'csv'
2
3CSV.open("data.csv", "r") do |csv_object|
4  csv_object.each do |row|
5    puts row.inspect
6  end
7end

引数(parameters)

path, options = {}

  • path: CSVファイルのパス(String)
  • options = {}: CSVの読み込みに関するオプションを指定するハッシュ(Hash)

戻り値(return)

Enumerator, CSV

CSVファイルを行ごとに処理するためのEnumeratorを返します。このEnumeratorは、各要素としてCSVの行を表す配列を生成します。

関連コンテンツ

関連プログラミング言語