CSV コマンドから指定したCSVファイルのデータを読み込む
[CSV.read] コマンドから指定したファイルから一度に読み込む
# csvライブラリを使用する require 'csv' # コマンドから指定するファイルの数ではない場合(この場合はファイル数が1つではない場合) if ARGV.length != 1 # 異なったコマンドの場合の警告の指定、その場合に実行しないようにする puts "usage : ruby #{__FILE__} file_name " exit 1 end
CSV.readでコマンドで指定されたデータを読み込み、
list.each do |list| end
でlistという変数にcsvファイルのデータが1行ずつ入る
ヘッダーを使用しない場合
equire 'csv' if ARGV.length != 1 puts "usage : ruby #{__FILE__} file_name " exit 1 end list = CSV.read("#{ARGV[0]}") # list = CSV.read("#{ARGV[0]}", headers: true) list.each do |list| p list end
出力結果
["id", "campany_name", "adress"] ["1", "株式会社りんご", "青森県"] ["2", "株式会社みかん", "和歌山県"] ["3", "めろん有限会社", "北海道県"] ["4", "(株)落花生", "千葉県"]
ヘッダーを使用する場合
equire 'csv' if ARGV.length != 1 puts "usage : ruby #{__FILE__} file_name " exit 1 end # list = CSV.read("#{ARGV[0]}") list = CSV.read("#{ARGV[0]}", headers: true) list.each do |list| p list end
出力結果
#<CSV::Row "id":"1" "campany_name":"株式会社りんご" "adress":"青森県"> #<CSV::Row "id":"2" "campany_name":"株式会社みかん" "adress":"和歌山県"> #<CSV::Row "id":"3" "campany_name":"めろん有限会社" "adress":"北海道県"> #<CSV::Row "id":"4" "campany_name":"(株)落花生" "adress":"千葉県">
ヘッダーを使用して出力
list = CSV.read("#{ARGV[0]}", headers: true) list.each do |list| p "#{list["adress"]}にある、#{list["campany_name"]}様" end
出力結果
"青森県にある、株式会社りんご様" "和歌山県にある、株式会社みかん様" "北海道県にある、めろん有限会社様" "千葉県にある、(株)落花生様"
[CSV.foreach] 一行ずつ読み込む場合
CSV.foreach("#{ARGV[0]}", headers: true) do |list| p "#{list["adress"]}にある、#{list["campany_name"]}様" end
出力結果は同じようになる
"青森県にある、株式会社りんご様" "和歌山県にある、株式会社みかん様" "北海道県にある、めろん有限会社様" "千葉県にある、(株)落花生様"