RubyでCSVファイルの読み込み・書き込みをする

今回はRubyでCSVファイルの読み込み・書き込みを行う方法を解説したいと思います。

Rubyには、CSVに対応するライブラリ「csv」が標準添付されているので、そのライブラリを使いCSVの読み込み・書き込みをする方法について解説します。

CSVファイルの読み込み

CSVファイルとは、ファイル形式の1つで、カンマ「,」で区切りでデータを記述したものです。今回は簡単なCSVファイルを用意しました。

このファイルを「data.csv」として保存します。

Ruby で CSV を扱うライブラリを require "csv"で読み込みます。

CSVファイルを1行ずつ読み込む

CSVファイルを1行ずつ取り出す場合は、以下のようにforeachメソッドを使います。

結果

CSVファイル全体を読み込む

次にreadメソッドを使って、CSVファイル全体を読み込みます。読み込んだデータは、配列に格納されます。

結果

さらに、mapメソッドを使って読み込み位置を指定することもできます。

|row| row[0,2]とした場合、 [,]は0番目のインデックスから2個分読み込むという命令になります。

以下の場合、各行の1-2列目が読み込まれます。

結果

CSVファイルの書き込み

次に、CSVファイルに書き込みをする方法について解説します。

CSVファイルの書き込みを行うために、読み込みと同じcsvライブラリのopenメソッドを使います。

実行すると以下の様なCSVファイルが生成されます。

"CSV.open('test.csv','w')"の'w'で書き込みの命令を行っています。

'a'にすると追記モードになり、既存のデータに追記で書き込むことができます。

他にも以下の様な書き方ができます。

実行して生成されるCSVファイルは先程と同じものが生成されます。