Ruby 2.1.0 リファレンスマニュアル > ライブラリ一覧 > csvライブラリ > CSVクラス > open
open(filename, mode = "rb", options = Hash.new) {|csv| ... } -> nil
[permalink][rdoc]open(filename, mode = "rb", options = Hash.new) -> CSV
open(filename, options = Hash.new) {|csv| ... } -> nil
open(filename, options = Hash.new) -> CSV
このメソッドは IO オブジェクトをオープンして CSV でラップします。 これは CSV ファイルを書くための主要なインターフェイスとして使うことを意図しています。
このメソッドは IO.open と同じように動きます。ブロックが与えられた場合は ブロックに CSV オブジェクトを渡し、ブロック終了時にそれをクローズします。 ブロックが与えられなかった場合は CSV オブジェクトを返します。 この挙動は Ruby1.8 の CSV ライブラリとは違います。Ruby1.8 では行をブロックに渡します。 Ruby1.9 以降では CSV.foreach を使うとブロックに行を渡します。
データが Encoding.default_external と異なる場合は、mode にエンコー ディングを指定する文字列を埋め込まなければなりません。データをどのよう に解析するか決定するために CSV ライブラリはユーザが mode に指定したエン コーディングをチェックします。"rb:UTF-32BE:UTF-8" のように mode を指定 すると UTF-32BE のデータを読み込んでUTF-8 に変換してから解析します。
また "rb:BOM|UTF-8" のように mode を指定すると BOM を自動的に取り除きま す。
CSV オブジェクトは多くのメソッドを IO や File に委譲します。