Ruby 2.1.0 リファレンスマニュアル > ライブラリ一覧 > csvライブラリ > CSVクラス > open

singleton method 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 オブジェクトは多くのメソッドを IOFile に委譲します。

[PARAM] filename:
ファイル名を指定します。
[PARAM] mode:
IO.open に指定できるものと同じものを指定できます。
[PARAM] options:
CSV.new のオプションと同じオプションを指定できます。

[SEE_ALSO] CSV.new, IO.open