Rubyでcsvファイルを処理

Rubyでcsvファイルを処理

RubyでCSVファイルを処理する方法を説明します。

CSVファイルの読み込み

Rubyの標準ライブラリであるCSVを使ってCSVファイルを読み込むことができます。
以下は、CSVファイルを読み込んで内容を配列に格納する例です。

サンプルコード
require 'csv'

data = []
CSV.foreach('ファイル名.csv', headers: true) do |row|
  data << row.to_h
end

puts data

CSVファイルの書き込み

CSVファイルにデータを書き込む方法も紹介します。
以下は、配列のデータをCSVファイルに書き込む例です。

サンプルコード
require 'csv'

data = [
  { "名前" => "田中", "年齢" => 30, "職業" => "エンジニア" },
  { "名前" => "鈴木", "年齢" => 25, "職業" => "デザイナー" }
]

CSV.open('出力ファイル.csv', 'w') do |csv|
  csv << data.first.keys
  data.each do |row|
    csv << row.values
  end
end

CSVファイルの変更

既存のCSVファイルを読み込み、変更を加えて再度書き込む例も以下に示します。

サンプルコード
require 'csv'

data = CSV.read('ファイル名.csv', headers: true)

data.each do |row|
  row["年齢"] = row["年齢"].to_i + 1
end

CSV.open('変更後ファイル.csv', 'w') do |csv|
  csv << data.headers
  data.each do |row|
    csv << row
  end
end

これでCSVファイルの基本的な処理が可能になります。