0Pricing
Ruby Academy · レッスン

CSV の扱い

csv ライブラリです。

「CSV の扱い」はCoddyKit上の無料Ruby Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはRuby Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ruby Academyコースには全4レッスンが含まれています。

CSV とは

CSV(Comma-Separated Values)は、表形式のデータをプレーンテキストとして保存します。1 行につき 1 レコードで、フィールドはカンマで区切ります。Ruby の標準 csv ライブラリで読み書きできます。

require 'csv'
row = CSV.parse_line('Alice,30,Engineer')
p row

CSV 文字列の解析

CSV.parse は、複数行の CSV 文字列を行配列の配列に変換します。

require 'csv'
data = "name,age\nAlice,30\nBob,25"
rows = CSV.parse(data)
p rows

ヘッダーの使用

headers: true を渡すと、最初の行がフィールド名になり、各行をハッシュのように扱えます。

require 'csv'
data = "name,age\nAlice,30"
CSV.parse(data, headers: true).each do |row|
  puts(row['name'])
  puts(row['age'])
end

行の反復処理

解析した行は通常の配列と同じようにループ処理でき、インデックスでフィールドにアクセスできます。

require 'csv'
rows = CSV.parse("1,a\n2,b\n3,c")
rows.each { |r| puts "#{r[0]} -> #{r[1]}" }

型の変換

converters: :numeric を使用すると、数値フィールドを自動的に Integer または Float に変換できます。

require 'csv'
rows = CSV.parse("10,20\n30,40", converters: :numeric)
puts(rows[0][0] + rows[1][1])

CSV の生成

CSV.generate は CSV 文字列を生成します。ブロック内に配列を追加すると、行を追加できます。

require 'csv'
out = CSV.generate do |csv|
  csv << ['name', 'age']
  csv << ['Alice', 30]
end
puts out

引用符と特殊文字

CSV は、カンマ、引用符、改行を含むフィールドを自動的に引用符で囲み、構造を維持します。

require 'csv'
out = CSV.generate do |csv|
  csv << ['note', 'Hello, world']
end
puts out

区切り文字のカスタマイズ

タブ区切りやセミコロン区切りのファイルには、col_sep を設定します。TSV やヨーロッパ式の CSV に対応できます。

require 'csv'
rows = CSV.parse("a;b;c", col_sep: ';')
p rows

ファイルへの書き込み

モード 'w' で CSV.open を使うと、行をファイルへ直接ストリーム出力できます。

require 'csv'
require 'tmpdir'
path = File.join(Dir.tmpdir, 'people.csv')
CSV.open(path, 'w') do |csv|
  csv << ['name', 'age']
  csv << ['Carol', 28]
end
puts(File.read(path))

ファイルからの読み込み

CSV.read はファイル全体を読み込み、行の配列に変換します。parse と同じオプションを受け取ります。

require 'csv'
require 'tmpdir'
path = File.join(Dir.tmpdir, 'nums.csv')
File.write(path, "x,y\n1,2\n3,4")
rows = CSV.read(path, headers: true)
puts(rows.first['y'])

列の合計

よくある処理に、列を読み込んで集計することがあります。ヘッダー、数値変換、map を組み合わせます。

require 'csv'
data = "item,price\npen,3\nbook,12"
total = CSV.parse(data, headers: true, converters: :numeric).sum { |r| r['price'] }
puts(total)

クイックチェック

row['age'] のように列名で CSV のフィールドへアクセスできるようにするオプションはどれですか。

まとめ: CSV の操作

表形式のデータを扱えるようになりました。

  • CSV.parse / CSV.read で読み込みます
  • headers: true で名前付きフィールドを使用します
  • converters: :numeric で型付きの値に変換します
  • CSV.generate / CSV.open で書き込みます
  • col_sep で TSV などの区切り文字を指定します
require 'csv'
p CSV.parse_line('a,b,c')

よくある質問

「CSV の扱い」レッスンは無料ですか?

はい。「CSV の扱い」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ruby Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ruby Academyコースには全4レッスンが含まれています。

「CSV の扱い」で何を学びますか?

csv ライブラリです。 ブラウザで直接実行するハンズオンコードでRuby Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Ruby Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのRuby Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「CSV の扱い」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このRuby Academyレッスンでコードを書いて実行できますか?

はい。すべてのRuby Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. JSON の読み書き
  2. CSV の扱い
  3. YAML 設定
  4. フォーマットの選択
← Ruby Academyに戻る