Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > csvライブラリ > CSVクラス
class CSV
クラスの継承リスト: CSV < Object < Kernel < BasicObject
Abstract
CSV (Comma Separated Values) を扱うクラスです。
各メソッドの共通パラメタ
mode 'r', 'w', 'rb', 'wb' から指定可能です。 - 'r' 読み込み - 'w' 書き込み - 'b' バイナリモード fs フィールドの区切り文字 デフォルトは ',' rs 行区切り文字。nil (デフォルト) で CrLf / Lf。 Cr で区切りたい場合は ?\r を渡します。
特異メソッド
foreach(path[, rs = nil]) {|row| ... } -> nil
-
読み込みモードでファイルを開き、各行を配列でブロックに渡します。
- [PARAM] path:
- パースするファイルのファイル名
- [PARAM] rs:
- 行区切り文字の指定。nil (デフォルト) で CrLf / Lf。 Cr を行区切りとしたい場合は ?\r を渡します。
注意:
パース時に""(空文字)と値なしを区別します。 例えば、a, "", , b の行をパースした場合には ["a", "", nil, "b"] の配列を返します。
例:
CSV.foreach('test.csv'){|row| puts row.join(':') }
generate(path[, fs = nil[, rs = nil]]) -> CSV::BasicWriter
generate(path[, fs = nil[, rs = nil]]) {|writer| ... } -> nil
-
path で指定されたファイルを書き込みモードで開き、ブロックに渡します。 ブロック未指定の場合は CSV::BasicWriter を返します。
- [PARAM] path:
- 書き込みモードでopenするファイルのファイル名
- [PARAM] fs:
- フィールドセパレータの指定。 nil (デフォルト) で ',' をセパレータとします。
- [PARAM] rs:
- 行区切り文字の指定。nil (デフォルト) で CrLf / Lf。 Cr を行区切りとしたい場合は ?\r を渡します。
注意:
ファイル書き込み時に""(空文字)と値なし(nil)を区別します。 例えば、["a", "", nil, "b"] の配列を渡した場合に a, "", , b という行をファイルに書き込みます。
例:
a = ["1","ABC","abc"] b = ["2","DEF","def"] c = ["3","GHI","ghi"] x = [a, b, c] CSV.generate("test2.csv"){|writer| x.each{|row| writer << row } }
generate_line(row[, fs = nil[, rs = nil]]) -> String
generate_line(row[, fs = nil[, rs = nil]]) {|s| ... } -> nil
-
row で指定された配列をパースし、fs で指定された文字をフィールドセパレータとして 1行分の文字列をブロックに渡します。 ブロック未指定の場合は変換された文字列を返します。
- [PARAM] row:
- パースする配列
- [PARAM] fs:
- フィールドセパレータの指定。 nil (デフォルト) で ',' をセパレータとします。
- [PARAM] rs:
- 行区切り文字の指定。nil (デフォルト) で CrLf / Lf。 Cr を行区切りとしたい場合は ?\r を渡します。
open(path, mode[, fs = nil[, rs = nil]]) {|row| ... } -> nil
open(path, mode[, fs = nil[, rs = nil]]) -> CSV::Reader
open(path, mode[, fs = nil[, rs = nil]]) -> CSV::Writer
-
CSVファイルを読み込んでパースします。
読み込みモード時には path にあるファイルを開き各行を配列として ブロックに渡します。
- [PARAM] path:
- パースするファイルのファイル名
- [PARAM] mode:
- 処理モードの指定 'r', 'w', 'rb', 'wb' から指定可能です。 - 'r' 読み込み - 'w' 書き込み - 'b' バイナリモード
- [PARAM] fs:
- フィールドセパレータの指定。 nil (デフォルト) で ',' をセパレータとします。
- [PARAM] rs:
- 行区切り文字の指定。nil (デフォルト) で CrLf / Lf。 Cr を行区切りとしたい場合は ?\r を渡します。
注意:
パース時に""(空文字)と値なし(nil)を区別します。 例えば、読み込みモード時にa, "", , b の行をパースした場合には ["a", "", nil, "b"] の配列を返します。
例:
CSV.open("/temp/test.csv", 'r') do |row| puts row.join("<>") end
tsv(Tab Separated Values)ファイルなどのセパレータをカンマ以外で指定
CSV.open("/temp/test.tsv", 'r', "\t") do |row| puts row.join("<>") end
ブロックを渡さなかった場合 CSV::Reader を返します。
書き込みモード時には path にあるファイルを開き CSV::Writer をブロックに渡します。
例:
CSV.open("/temp/test.csv", 'w') do |writer| writer << ["ruby", "perl", "python"] writer << ["java", "C", "C++"] end
ブロック未指定の場合 CSV::Writer を返します。
parse(str_or_readable[, fs = nil[, rs = nil]]) -> Array
parse(str_or_readable[, fs = nil[, rs = nil]]) {|rows| ... } -> nil
-
str_or_readable で指定された文字列をパースし配列の配列に変換、ブロックに渡します。 ブロック未指定の場合は変換された配列の配列を返します。
- [PARAM] str_or_readable:
- パースする文字列
- [PARAM] fs:
- フィールドセパレータの指定。 nil (デフォルト) で ',' をセパレータとします。
- [PARAM] rs:
- 行区切り文字の指定。nil (デフォルト) で CrLf / Lf。 Cr を行区切りとしたい場合は ?\r を渡します。
例:
CSV.parse("A,B,C\nd,e,f\nG,H,I"){|rows| p rows }
parse_line(src[, fs = nil[, rs = nil]]) -> Array
parse_line(src[, fs = nil[, rs = nil]]) {|row| ... } -> nil
-
src で指定された文字列を1行分としてパースし配列に変換、ブロックに渡します。 ブロック未指定の場合は変換された配列を返します。
- [PARAM] src:
- パースする文字列
- [PARAM] fs:
- フィールドセパレータの指定。 nil (デフォルト) で ',' をセパレータとします。
- [PARAM] rs:
- 行区切り文字の指定。nil (デフォルト) で CrLf / Lf。 Cr を行区切りとしたい場合は ?\r を渡します。
read(path[, length = nil[, offset = nil]]) -> Array
-
path で指定された CSV ファイルを読み込み、配列の配列でデータを返します。
- [PARAM] path:
- パースするファイルのファイル名
- [PARAM] length:
- 対象ファイルの読み込みサイズ
- [PARAM] offset:
- 読み込み開始位置
注意:
パース時に""(空文字)と値なしを区別します。 例えば、a, "", , b の行をパースした場合には ["a", "", nil, "b"] の配列を返します。
readlines(path[, rs = nil]) -> Array
-
path で指定された CSV ファイルを読み込み、配列の配列でデータを返します。
- [PARAM] path:
- パースするファイルのファイル名
- [PARAM] rs:
- 行区切り文字の指定。nil (デフォルト) で CrLf / Lf。 Cr を行区切りとしたい場合は ?\r を渡します。
注意:
パース時に""(空文字)と値なしを区別します。 例えば、a, "", , b の行をパースした場合には ["a", "", nil, "b"] の配列を返します。