標準ライブラリの 'csv' を利用すると、CSVファイルはもちろんのことTSVファイルも簡単に読み込むことができます。
sample.rb
#!/usr/bin/ruby
# -*- coding: utf-8 -*-
require 'csv'
# 一行ずつ読み込む
CSV.foreach('in.csv', 'r:UTF-8') do |arr|
p arr
end
# すべてを読み込んで配列に格納
arr_of_arr = CSV.read('in.csv', 'r:UTF-8')
p arr_of_arr
# 任意の区切り文字を指定可能 (TSVの場合は "\t" を指定)
p CSV.read('in.tsv', 'r:UTF-8', col_sep: "\t")
in.csv (UTF-8)
hoge,"ho,ge",にほんご
hoge,"ho
ge"
hoge,"hoge"
in.tsv (UTF-8)
hoge "ho ge" にほんご
hoge "ho
ge"
hoge "hoge"
実行例
$ ruby sample.rb
["hoge", "ho,ge", "\u306B\u307B\u3093\u3054"]
["hoge", "ho\nge"]
["hoge", "hoge"]
[["hoge", "ho,ge", "\u306B\u307B\u3093\u3054"], ["hoge", "ho\nge"], ["hoge", "hoge"]]
[["hoge", "ho\tge", "\u306B\u307B\u3093\u3054"], ["hoge", "ho\nge"], ["hoge", "hoge"]]