CSVファイル・アクセス (3/4)
作成:2013-03-18 07:34
更新:2013-03-18 07:34
更新:2013-03-18 07:34
■CSVファイルの書き出し
続いて、ファイルの書き出しを行なってみましょう。これもいくつかのやり方が考えられます。まずは、あらかじめ保存するデータが用意されていて、新しいファイルを作って書き出していくやり方から考えましょう。
ファイルへの書き出しは、CSV.openを利用するのがよいでしょう。これは以下のような形で記述します。
第2引数の「アクセス権」は、テキストファイルのopenで登場したのと同じです。'w'を指定すれば、ファイルへの書き出しができるようになります。また'a'を指定すれば追記モードになり、既にあるファイルの末尾にデータを追記できます。
これでファイルを開くことはできました。返値はWriterというオブジェクトが返されます。このオブジェクトに対して、putsで保存したいデータを配列にまとめて書き出すことでファイルに保存出来ます。
ファイルへの書き出しは、CSV.openを利用するのがよいでしょう。これは以下のような形で記述します。
変数 = CSV.open( ファイル,
アクセス権 )
第2引数の「アクセス権」は、テキストファイルのopenで登場したのと同じです。'w'を指定すれば、ファイルへの書き出しができるようになります。また'a'を指定すれば追記モードになり、既にあるファイルの末尾にデータを追記できます。
これでファイルを開くことはできました。返値はWriterというオブジェクトが返されます。このオブジェクトに対して、putsで保存したいデータを配列にまとめて書き出すことでファイルに保存出来ます。
変数.puts 配列このようになります。最後にcloseでファイルを閉じれば作業完了です。実に簡単ですね。――この書き方、どこかで見たことありますね? そう、テキストファイルの書き出しと同じです。ということは、もう少しRubyっぽい書き方もできるはずです。
CSV.open( ファイル , 'w') do |変数|こんな具合にすれば、同じようにファイルにCSVデータを書き出すことができます。do ~ endを使い、書き出しには<<でデータを送ります。こちらのほうがだいぶRubyっぽい感じになりますね。どちらの書き方もできるように覚えておくと良いでしょう。
変数 << 配列
end
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
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 を書き出しました。')
※関連コンテンツ