rubyでテキストファイルをCSVで出力する
rubyでファイルの読み込み、書き込みについてまとめる。
【テキストファイルをCSVファイルに変換】
テキストファイルをCSVファイルに変換し出力するには、まずテキストファイルを読み込む必要がある。
テキストファイルの読み込みについては前回説明したが、以下のようにして読み込む。
CSV.foreach('ファイル名', :col_sep => "\t") do |row|
//処理
end
そして、今回重要なのは、どのようにしてファイルに出力するかということである。
ファイルへの出力は以下のようにすれば行える。
File.open("ファイル名","w") do |csv|
csv.puts("書き込みたい内容")
end
csv.putsというメソッドに引数を与えることで、ファイルに書き込みがされる。
そして、ファイルに書き込む際にCSVとして出力するには、要素同士の間をカンマ「,」で区切ってあげれば良い。
※注意
要素をカンマで区切りたい、と思ったが要素自体にカンマが入ってしまっていたり特殊記号が入っていたりすると上手くいかないことがある。そんなときのために以下の二つを覚えておくと良い。
- 要素は必ずダブルクォートでくくる
- 要素の中にダブルクォートがあれば二重のダブルクォートに置換する
これを徹底すればそのような場合にも対処できるので押さえておこう。