libro
www.tuyano.com
初心者のためのRubyプログラミング入門

CSVファイル・アクセス (3/4)

作成:2013-03-18 07:34
更新:2013-03-18 07:34

■CSVファイルの書き出し

続いて、ファイルの書き出しを行なってみましょう。これもいくつかのやり方が考えられます。まずは、あらかじめ保存するデータが用意されていて、新しいファイルを作って書き出していくやり方から考えましょう。

ファイルへの書き出しは、CSV.openを利用するのがよいでしょう。これは以下のような形で記述します。
変数 = CSV.open( ファイル,
    アクセス権 )

第2引数の「アクセス権」は、テキストファイルのopenで登場したのと同じです。'w'を指定すれば、ファイルへの書き出しができるようになります。また'a'を指定すれば追記モードになり、既にあるファイルの末尾にデータを追記できます。

これでファイルを開くことはできました。返値はWriterというオブジェクトが返されます。このオブジェクトに対して、putsで保存したいデータを配列にまとめて書き出すことでファイルに保存出来ます。
変数.puts 配列
このようになります。最後にcloseでファイルを閉じれば作業完了です。実に簡単ですね。――この書き方、どこかで見たことありますね? そう、テキストファイルの書き出しと同じです。ということは、もう少しRubyっぽい書き方もできるはずです。
CSV.open( ファイル , 'w') do |変数|
    変数 << 配列
end
こんな具合にすれば、同じようにファイルにCSVデータを書き出すことができます。do ~ endを使い、書き出しには<<でデータを送ります。こちらのほうがだいぶRubyっぽい感じになりますね。どちらの書き方もできるように覚えておくと良いでしょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

※ファイルへの書き出し(1)
# coding: utf-8

require 'csv'
out = CSV.open('sample2.csv','w')
    out.puts ["A","B","C"]
    out.puts ["hello","welcome","bye"]
out.close
puts('sample2.csv を書き出しました。')


※ファイルへの書き出し(2)
# coding: utf-8

require 'csv'
CSV.open('sample2.csv','w') do |out|
    out << ["A","B","C"]
    out << ["hello","welcome","bye"]
end
puts('sample2.csv を書き出しました。')
※関連コンテンツ

「初心者のためのRubyプログラミング入門」に戻る