【ケース別】Ruby csvを扱うメソッド5つのメソッド(読み込み、書き込み、table)

こんちは!

編集長です!

今回はRubyでCSVを扱う方法について見ていきます。

CSVを読み込むメソッドである

  • foreachメソッド
  • readメソッド
  • tableメソッド

CSVを書き込むメソッドである

  • open(w)メソッド
  • open(a)メソッド

についてそれぞれ見ていきます!

それでは行ってみましょう!

テストデータ

今回はこんな感じのテストデータを、data.csvと言う形で使っていきます!

number,name
1,taro
2,hanako
3,saburo

csv 読み込み

まず、csvの読み込みについて見ていきます!

foreach(一行ずつ読み込む)

foreachメソッドはCSVを一行ずつ読み込むためのメソッドです。

このように、一行ずつ読み込めていることがわかります!

 

編集長

csvを扱うためには'csvライブラリ'を'require'する必要がある!

行頭のrequire 'csv' を忘れないように!

read(一括で読み込む)

readメソッドはCSVを一括で読み込むためのメソッドです。

このように一括で配列の要素として読み込まれていることがわかります!

table(高機能な読み込み)

次にtableメソッドについて見ていきます。

tableメソッドは、tableのようにcsvを読み込むメソッドです。

実際に使い方を見ていきましょう。

tableメソッドを使うと

  • [:number] [:name]のように、ヘッダーの要素名をシンボルで指定すると、その列を抜き出すことができる
  • [1]のように行番号を指定するとその行を抜き出すことができる
  • [1][:name]のように、合わせて指定も可能!

このようにあたかも、tableのようにcsvを扱うことが可能となります!

  • csvを整形する
  • csvを用いてデータを解析する

時などに、使うとcsvをスマートに使えて良さそうですね!

csv 書き込み

次にcsvの書き込みについて見ていきます。

open w(書き込み)

まずは基本的な書き込みの方法について見ていきます。

実行すると以下のような「data2.csvファイル」が作成されます。

1,2,3
taro,hanako,saburo

openに'w'オプションをつけると

  • ファイルがない場合、新規作成
  • ファイルがある場合、既存の内容はリセットされ、上書き

されます。

既存の内容に追記したい場合は以下の'aオプション'を使うようにしましょう!

open a(追記)

既存の内容に追記したい場合はopenメソッドに「aオブション」を使います。

このように追記できていることがわかります!

編集長
オプション間違ってデータ壊さないように!!!

まとめ

今回はCSVの書き込み、読み込みについて見ていきました!

書き込み、読み込みには、様々な方法がありますが、その時にあった方法を利用するようにしましょう!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です