RubyでCSVファイルを操作する方法を現役エンジニアが解説【初心者向け】
初心者向けにRubyでCSVファイルを操作する方法について現役エンジニアが解説しています。CSVファイルとは何かの文字や空白で区切られてた文字列のファイルのことです。カンマ,が良く使われます。RubyではあらかじめCSV形式のファイルを読み込むメソッドなどが用意されています。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
RubyでCSVファイルを操作する方法について解説します。
そもそもRubyについてよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプRuby講座の内容をもとに紹介しています。
今回は、Rubyに関する内容だね!
どういう内容でしょうか?
RubyでCSVファイルを操作する方法について詳しく説明していくね!
お願いします!
CSVファイルとは
CSVファイルとは、カンマ「,」で区切られたテキストファイルのことを指します。
sample.csvなどのファイル名で保存されており、以下のような形式で書かれます。
分類,名前,値段, 野菜,トマト,100, 野菜,レタス,250, 果物,りんご,200, 飲料,コーヒー,120,
RubyのCSVクラスとは
Rubyには、CSVファイルを扱うためにCSVクラスが用意されています。これを使用することで、CSVファイルを読み込んだり、書き出したりすることができます。
CSVファイルを操作するための主なメソッド
CSVを読み込むメソッドとして、一度で読み込む「read」と1行づつ読み込む「foreach」があります。どちらもCSVファイルの存在するパスを引数にとります。
CSVを書き出すメソッドには、「open」があり、csvファイルに追記したり、新しく作成することができます。
実際に書いてみよう
では、実際に書いてみましょう。まず、下準備にsample.csvファイルを作成して、以下のCSVをコピーしてして貼り付けてみてください。
分類,名前,値段, 野菜,トマト,100, 野菜,レタス,250, 果物,りんご,200, 飲料,コーヒー,120,
そして、同じディレクトリに今回使用するmain.rbを作成してください。以下のような構成になるはずです。
-main.rb -sample.csv
それでは読み込みからやります。
require 'csv' # sample.csvを読み込む csv_data = CSV.read("sample.csv") # 返り値は2次元の配列になるので、以下のようにアクセスできる puts csv_data[0][0] # => 分類 puts csv_data[1][1] # => トマト # headersをtrueにすると、1行目の値をindexの代わりに割り当てられる csv_data_with_header = CSV.read("sample.csv", headers: true) puts csv_data_with_header["分類"].join(",") puts csv_data_with_header["名前"][3] # => コーヒー # foreachでcsvファイルを1行づつ読み込める CSV.foreach("sample.csv") do |row| puts row.join(",") end
実行結果は、以下の通りです。
分類 トマト 野菜,野菜,果物,飲料 コーヒー 分類,名前,値段 野菜,トマト,100 野菜,レタス,250 果物,りんご,200 飲料,コーヒー,120
次に書き込みです。
# openで"w"を引数にすることで書き込みモードでCSVを開く CSV.open("sample2.csv","w")do |csv| csv << ["分類","名前","値段"] csv << ["肉", "牛ひき肉","500"] end
sample2.csvが作成できていれば、成功です。
以上で、解説を終わります。csvはよく使うので、ぜひマスターしましょう。
筆者プロフィール
メンター金成さん
フリーランスエンジニア。 使える言語は、ruby python go 。最近はgoにハマってます。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でもRuby on Railsを使ったプログラミングを習得できるオンラインブートキャンプRuby講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。