📋
Ruby で CSVファイルの読み込み・書き込み
CSVファイルの読み込み
以下のようなデータを想定
id | name |
---|---|
1 | Mat |
2 | Emily |
3 | Bob |
require 'csv'
INPUT_CSV_PATH = "./input.csv"
table = CSV.read(INPUT_CSV_PATH, headers: true)
table.each do |row|
p row['id']
p row['name']
end
以下のような結果になる
1
Mat
2
Emily
3
Bob
CSVファイルの書き出し
require 'csv'
OUTPUT_CSV_PATH = "./output.csv"
names = ['Mat', 'Emily', 'Bob']
results = []
names.each_with_index do |i, name|
result[:id] = i
result[:name] = name
results << result
end
# results の hash の key をカラム名に指定
CSV.open(OUTPUT_CSV_PATH, 'w') do |csv|
header = results[0].keys.map { |k| k.to_s }
header[0] = "\uFEFF" + header[0]
csv << header
results.each do |result|
csv << result.values
end
end
以下のようなCSVができあがる
id | name |
---|---|
1 | Mat |
2 | Emily |
3 | Bob |
Discussion