るりまサーチ (Ruby 2.3.0)

最速Rubyリファレンスマニュアル検索!
120件ヒット [1-100件を表示] (0.044秒)
トップページ > バージョン:2.3.0[x] > クエリ:l[x] > ライブラリ:csv[x]

別のキーワード

  1. matrix l
  2. kernel $-l
  3. _builtin $-l
  4. lupdecomposition l

クラス

キーワード

検索結果

<< 1 2 > >>

CSV::Table#delete(index_or_header) -> object (27307.0)

指定された行か列を削除して返します。

...変更したい場合は CSV::Table#by_col!,
CSV
::Table#by_row! を使用してください。

//emlist[例][ruby]{
require "csv"

row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
row2 = CSV::Row.new(["header1", "header2"], ["row2_1", "row2_2"])
table = CSV::Table.new([row1, row2])...
...table.delete(1)
table.to_a # => [["header1", "header2"], ["row1_1", "row1_2"]]
//}

@see CSV::Table#by_col!, CSV::Table#by_row!, CSV::Table#delete_if...

CSV::Table#delete_if {|column_name, values| ... } -> self (27307.0)

ブロックを評価した結果が真である行か列を削除します。

...mlist[例 ロウモード][ruby]{
require "csv"

row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "valid"])
row2 = CSV::Row.new(["header1", "header2"], ["row2_1", "invalid"])
row3 = CSV::Row.new(["header1", "header2"], ["row3_1", "valid"])
table = CSV::Table.new([row1, row2, row3])
table.delet...
...", "valid"]]
//}

//emlist[例 カラムモード][ruby]{
require "csv"
row1 = CSV::Row.new(["id", "name"], [1, "tanaka"])
row2 = CSV::Row.new(["id", "name"], [2, "suzuki"])
row3 = CSV::Row.new(["id", "name"], [3, "sato"])
table = CSV::Table.new([row1, row2, row3])
table.by_col!
table.delete_if { |c...
...olumn_name, values| column_name == "id" }
table.to_a # => [["name"], ["tanaka"], ["suzuki"], ["sato"]]
//}

@see CSV::Table#delete...

CSV::Table#delete_if {|row| ... } -> self (27307.0)

ブロックを評価した結果が真である行か列を削除します。

...mlist[例 ロウモード][ruby]{
require "csv"

row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "valid"])
row2 = CSV::Row.new(["header1", "header2"], ["row2_1", "invalid"])
row3 = CSV::Row.new(["header1", "header2"], ["row3_1", "valid"])
table = CSV::Table.new([row1, row2, row3])
table.delet...
...", "valid"]]
//}

//emlist[例 カラムモード][ruby]{
require "csv"
row1 = CSV::Row.new(["id", "name"], [1, "tanaka"])
row2 = CSV::Row.new(["id", "name"], [2, "suzuki"])
row3 = CSV::Row.new(["id", "name"], [3, "sato"])
table = CSV::Table.new([row1, row2, row3])
table.by_col!
table.delete_if { |c...
...olumn_name, values| column_name == "id" }
table.to_a # => [["name"], ["tanaka"], ["suzuki"], ["sato"]]
//}

@see CSV::Table#delete...

CSV::Table#length -> Integer (27307.0)

Array#length, Array#size に委譲します。

Array#length, Array#size に委譲します。


@see Array#length, Array#size

CSV::Table#table -> Array (27307.0)

同値性を比較するために内部的に使用します。

同値性を比較するために内部的に使用します。

絞り込み条件を変える

CSV.parse_line(line, options = Hash.new) -> Array (18607.0)

このメソッドは一行の CSV 文字列を配列に変換するためのショートカットです。

...このメソッドは一行の CSV 文字列を配列に変換するためのショートカットです。

@param line 文字列を指定します。複数行の文字列を指定した場合は、一行目以外は無視します。

@param options CSV.new のオプションと同じオプショ...
...ンを指定できます。

//emlist[例][ruby]{
require 'csv'

p CSV.parse_line("1,taro,tanaka,20")
# => ["1", "taro", "tanaka", "20"]

p CSV.parse_line("1|taro|tanaka|20", col_sep: '|')
# => ["1", "taro", "tanaka", "20"]

# 列をダブルクオートで囲むとその中にカンマや改行を...
...含める事もできる。
# 他の仕様も含め詳しくはRFC4180を参照。
p CSV.parse_line("1,\"ta,ro\",\"tana\nka\", 20")
# => ["1", "ta,ro", "tana\nka", " 20"]
//}...

CSV.table(path, options = Hash.new) -> CSV::Table | [Array] (18607.0)

以下と同等のことを行うメソッドです。 日本語の CSV ファイルを扱う場合はあまり使いません。

...以下と同等のことを行うメソッドです。
日本語の CSV ファイルを扱う場合はあまり使いません。

//emlist[][ruby]{
CSV
.read( path, { headers: true,
converters: :numeric,
header_converters: :symbol }.merge(options...
...) )
//}

@param path ファイル名を指定します。

@param options CSV.new のオプションと同じオプションを指定できます。


@see CSV.read...

CSV#close -> nil (18307.0)

IO#close に委譲します。

IO#close に委譲します。


@see IO#close

CSV#close_read -> nil (18307.0)

IO#close_read に委譲します。

IO#close_read に委譲します。


@see IO#close_read

CSV#close_write -> nil (18307.0)

IO#close_write に委譲します。

IO#close_write に委譲します。


@see IO#close_write

絞り込み条件を変える

CSV#closed? -> bool (18307.0)

IO#closed? に委譲します。

IO#closed? に委譲します。


@see IO#closed?

CSV#col_sep -> String (18307.0)

カラム区切り文字列として使用する文字列を返します。

..."csv"

users =<<-EOS
id|first name|last name|age
1|taro|tanaka|20
2|jiro|suzuki|18
3|ami|sato|19
4|yumi|adachi|21
EOS

csv
= CSV.new(users, headers: true, col_sep: "|")
csv
.col_sep # => "|"
csv
.first.to_a # => [["id", "1"], ["first name", "taro"], ["last name", "tanaka"], ["age", "20"]]

csv
= CSV....
...new(users, headers: true)
csv
.col_sep # => ","
csv
.first.to_a # => [["id|first name|last name|age", "1|taro|tanaka|20"]]
//}

@see CSV.new...

CSV#external_encoding -> Encoding | nil (18307.0)

IO#external_encoding に委譲します。

IO#external_encoding に委譲します。

CSV#fcntl(cmd, arg = 0) -> Integer (18307.0)

IO#fcntl に委譲します。

IO#fcntl に委譲します。

CSV#field_size_limit -> Integer (18307.0)

フィールドサイズの最大値を返します。

...csv"

csv
= CSV.new(DATA)
csv
.field_size_limit # => nil
p csv.read # => [["a", "b"], ["\n2\n2\n", ""]]

DATA.rewind
csv
= CSV.new(DATA, field_size_limit: 4)
p csv.field_size_limit # => 4
csv
.read # => #<CSV::MalformedCSVError: Field size exceeded on line 2.>

__END__
"a","b"
"
2
2
",""
//}

@see CSV...

絞り込み条件を変える

CSV#fileno -> Integer (18307.0)

IO#fileno, IO#to_i に委譲します。

IO#fileno, IO#to_i に委譲します。

CSV#flock(operation) -> 0 | false (18307.0)

File#flock に委譲します。

File#flock に委譲します。

CSV#flush -> self (18307.0)

IO#flush に委譲します。

IO#flush に委譲します。

CSV#internal_encoding -> Encoding | nil (18307.0)

IO#internal_encoding に委譲します。

IO#internal_encoding に委譲します。


@see IO#internal_encoding

CSV#ioctl(cmd, arg = 0) -> Integer (18307.0)

IO#ioctl に委譲します。

IO#ioctl に委譲します。


@see IO#ioctl

絞り込み条件を変える

CSV#lineno -> Integer (18307.0)

このファイルから読み込んだ最終行の行番号を返します。 フィールドに含まれる改行はこの値には影響しません。

...ィールドに含まれる改行はこの値には影響しません。

//emlist[例][ruby]{
require "csv"

csv
= CSV.new("header1,header2\nrow1_1,row1_2")
csv
.lineno # => 0
csv
.readline
csv
.lineno # => 1
//}...

CSV#skip_blanks? -> bool (18307.0)

真である場合は、空行を読み飛ばします。

...[例][ruby]{
require "csv"

csv
= CSV.new("header1,header2\n\nrow1_1,row1_2")
csv
.skip_blanks? # => false
csv
.read # => [["header1", "header2"], [], ["row1_1", "row1_2"]]
csv
= CSV.new("header1,header2\n\nrow1_1,row1_2", skip_blanks: true)
csv
.skip_blanks? # => true
csv
.read # => [["...
...header1", "header2"], ["row1_1", "row1_2"]]
//}

@see CSV.new...

CSV#unconverted_fields? -> bool (18307.0)

パースした結果が unconverted_fields というメソッドを持つ場合に真を返します。 そうでない場合は、偽を返します。

...た結果が unconverted_fields というメソッドを持つ場合に真を返します。
そうでない場合は、偽を返します。


@see CSV.new...

CSV.filter(input, options = Hash.new) {|row| ... } (18307.0)

このメソッドは CSV データに対して Unix のツール群のようなフィルタを構築 するのに便利です。

...このメソッドは CSV データに対して Unix のツール群のようなフィルタを構築
するのに便利です。

与えられたブロックに一行ずつ渡されます。ブロックに渡された行は必要であ
れば変更することができます。ブロックの評...
...list[例: input, output は初期値][ruby]{
# $ echo "header1,header2\nrow1_1,row1_2" > in.csv; ruby test.rb in.csv

require "csv"

options = { headers: true, return_headers: true, write_headers: true }

CSV
.filter(options) do |row|
if row.header_row?
row << "header3"
next
end
row <<...
...y]{
require "csv"
content = <<EOS
id,first name,last name,age
1,taro,tanaka,20
2,jiro,suzuki,18
3,ami,sato,19
4,yumi,adachi,21
EOS

File.write('test.csv',content)
options = { headers: true, return_headers: true, write_headers: true }

CSV
.filter(File.open("test.csv"), File.open("out.csv", "w"), opti...

CSV.filter(input, output, options = Hash.new) {|row| ... } (18307.0)

このメソッドは CSV データに対して Unix のツール群のようなフィルタを構築 するのに便利です。

...このメソッドは CSV データに対して Unix のツール群のようなフィルタを構築
するのに便利です。

与えられたブロックに一行ずつ渡されます。ブロックに渡された行は必要であ
れば変更することができます。ブロックの評...
...list[例: input, output は初期値][ruby]{
# $ echo "header1,header2\nrow1_1,row1_2" > in.csv; ruby test.rb in.csv

require "csv"

options = { headers: true, return_headers: true, write_headers: true }

CSV
.filter(options) do |row|
if row.header_row?
row << "header3"
next
end
row <<...
...y]{
require "csv"
content = <<EOS
id,first name,last name,age
1,taro,tanaka,20
2,jiro,suzuki,18
3,ami,sato,19
4,yumi,adachi,21
EOS

File.write('test.csv',content)
options = { headers: true, return_headers: true, write_headers: true }

CSV
.filter(File.open("test.csv"), File.open("out.csv", "w"), opti...

絞り込み条件を変える

CSV.filter(options = Hash.new) {|row| ... } (18307.0)

このメソッドは CSV データに対して Unix のツール群のようなフィルタを構築 するのに便利です。

...このメソッドは CSV データに対して Unix のツール群のようなフィルタを構築
するのに便利です。

与えられたブロックに一行ずつ渡されます。ブロックに渡された行は必要であ
れば変更することができます。ブロックの評...
...list[例: input, output は初期値][ruby]{
# $ echo "header1,header2\nrow1_1,row1_2" > in.csv; ruby test.rb in.csv

require "csv"

options = { headers: true, return_headers: true, write_headers: true }

CSV
.filter(options) do |row|
if row.header_row?
row << "header3"
next
end
row <<...
...y]{
require "csv"
content = <<EOS
id,first name,last name,age
1,taro,tanaka,20
2,jiro,suzuki,18
3,ami,sato,19
4,yumi,adachi,21
EOS

File.write('test.csv',content)
options = { headers: true, return_headers: true, write_headers: true }

CSV
.filter(File.open("test.csv"), File.open("out.csv", "w"), opti...

CSV.generate_line(row, options = Hash.new) -> String (18307.0)

このメソッドは一つの Array オブジェクトを CSV 文字列に変換するためのショートカットです。 複数行のCSVを扱う際はCSV#<<を使うとより高速です。

...このメソッドは一つの Array オブジェクトを CSV 文字列に変換するためのショートカットです。
複数行のCSVを扱う際はCSV#<<を使うとより高速です。

このメソッドは可能であれば row に含まれる最初の nil でない値を用いて出...
...力の
エンコーディングを推測します。

@param row 文字列の配列を指定します。

@param options CSV.new のオプションと同じオプションを指定できます。
:encoding というキーを使用すると出力のエンコーディングを指定す...
...ることができます。
:row_sep というキーの値には $/ がセットされます。

//emlist[例][ruby]{
require "csv"

taro = ['1', 'taro', 'tanaka', '20']
CSV
.generate_line(taro, col_sep: '|') # => "1|taro|tanaka|20\n"
//}

@see CSV.new...

CSV::DEFAULT_OPTIONS -> Hash (18307.0)

このオプションは呼び出し側で上書きしなかったときに使用するオプションです。

このオプションは呼び出し側で上書きしなかったときに使用するオプションです。

: :col_sep
","
: :row_sep
:auto
: :quote_char
'"'
: :field_size_limit
nil
: :converters
nil
: :unconverted_fields
nil
: :headers
false
: :return_headers
false
: :header_converters
nil
: :skip_blanks
false
: :force_quotes
false
: :skip_lin...

CSV::FieldInfo#line -> Integer (18307.0)

行番号を返します。

...

//emlist[例][ruby]{
require 'csv'

csv
= CSV.new("date1,date2,date3\n2018-07-09,2018-07-10\n2018-08-09,2018-08-10", headers: true)
csv
.convert do |field,field_info|
p field_info.line
Date.parse(field)
end
p csv.to_a

# => 2
# => 2
# => 3
# => 3
# => [#<CSV::Row "date1":#<Date: 2018-07-09 (...

CSV::FieldInfo#line=(val) (18307.0)

行番号をセットします。

行番号をセットします。

@param val 行番号を指定します。

絞り込み条件を変える

CSV::Row#delete(header_or_index, minimum_index = 0) -> [object, object] | nil (18307.0)

ヘッダの名前かインデックスで行からフィールドを削除するために使用します。

...by]{
require "csv"

row = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])

row # => #<CSV::Row "header1":"row1_1" "header2":"row1_2">
row.delete("header1")
row # => #<CSV::Row "header2":"row1_2">
//}

//emlist[例 ヘッダの index で指定][ruby]{
require "csv"

row = CSV::Row.new(["he...
...w # => #<CSV::Row "header1":"row1_1" "header2":"row1_2">
row.delete(0)
row # => #<CSV::Row "header2":"row1_2">
//}

//emlist[例 ヘッダの名前と offset で指定][ruby]{
require "csv"

row = CSV::Row.new(["header1", "header2", "header1"], ["row1_1", "row1_2", "row1_3"])

row # => #<CSV::Row "h...
...eader1":"row1_1" "header2":"row1_2" "header1":"row1_3">
row.delete("header1", 1)
row # => #<CSV::Row "header1":"row1_1" "header2":"row1_2">
//}

@see CSV::Row#field...

CSV::Row#delete_if {|header, field| ... } -> self (18307.0)

与えられたブロックにヘッダとフィールドのペアを渡して評価します。 評価した結果が真である場合に、その組を自身から削除します。

...require "csv"

row = CSV::Row.new(["header1", "header2", "header3", "header4"], ["valid1", "valid2", "invalid", "valid4"])

row # => #<CSV::Row "header1":"valid1" "header2":"valid2" "header3":"invalid" "header4":"valid4">
row.delete_if { |header, field| field == "invalid" }
row # => #<CSV::Row "hea...

CSV::Row#field?(data) -> bool (18307.0)

自身に与えられた値が含まれている場合は真を返します。 そうでない場合は偽を返します。

...ない場合は偽を返します。

@param data この行に含まれているかどうか調べたい値を指定します。

//emlist[例][ruby]{
require "csv"

row = CSV::Row.new(["header1", "header2", "header3", "header4"], [1, 2, 3, 4])
row.field?(1) # => true
row.field?(5) # => false
//}...

CSV::Row#field_row? -> bool (18307.0)

フィールド行であれば真を返します。そうでなければ偽を返します。

...ド行であれば真を返します。そうでなければ偽を返します。

//emlist[例][ruby]{
require "csv"

header_row = CSV::Row.new(["header1", "header2"], [], true)
row = CSV::Row.new(["header1", "header2"], [1, 2])
header_row.field_row? # => false
row.field_row? # => true
//}...

CSV::Row#fields(*headers_and_or_indices) -> Array (18307.0)

与えられた引数に対応する値の配列を返します。

...与えられた引数に対応する値の配列を返します。

要素の探索に CSV::Row.field を使用しています。

@param headers_and_or_indices ヘッダの名前かインデックスか Range
のインスタンスか第 1 要素がヘッダの名前...
...るこ
とができます。

@return 引数を与えなかった場合は全ての要素を返します。

require 'csv'
csv
= CSV.new("a,b,c\n1,2,3", headers: true)
table = csv.read
row = table.first
row.values_at("a", 1, 2..3) # => ["1", "2", "3", nil]...

絞り込み条件を変える

CSV::Row#length -> Integer (18307.0)

Array#length, Array#size に委譲します。

Array#length, Array#size に委譲します。


@see Array#size

CSV::Row#values_at(*headers_and_or_indices) -> Array (18307.0)

与えられた引数に対応する値の配列を返します。

...与えられた引数に対応する値の配列を返します。

要素の探索に CSV::Row.field を使用しています。

@param headers_and_or_indices ヘッダの名前かインデックスか Range
のインスタンスか第 1 要素がヘッダの名前...
...るこ
とができます。

@return 引数を与えなかった場合は全ての要素を返します。

require 'csv'
csv
= CSV.new("a,b,c\n1,2,3", headers: true)
table = csv.read
row = table.first
row.values_at("a", 1, 2..3) # => ["1", "2", "3", nil]...

CSV::Table#by_col -> CSV::Table (18307.0)

カラムモードになっている新しい CSV::Table オブジェクトを返します。

...カラムモードになっている新しい CSV::Table オブジェクトを返します。

元のテーブルモードを変更せずにメソッドチェーンできるので便利です。しか
し、大きなデータセットに対しても同じだけメモリを消費するので気を...
...込まないようにしてください。

//emlist[例][ruby]{
require "csv"

row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
row2 = CSV::Row.new(["header1", "header2"], ["row2_1", "row2_2"])
table = CSV::Table.new([row1, row2])
col_table = table.by_col
col_table[0] # => ["row1_1...

CSV::Table#by_col! -> self (18307.0)

自身をカラムモードに変更します。

...にメソッドチェーンできます。

//emlist[例][ruby]{
require "csv"

row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
row2 = CSV::Row.new(["header1", "header2"], ["row2_1", "row2_2"])
table = CSV::Table.new([row1, row2])
table.by_col!
table[0] # => ["row1_1", "row2_1"]
ta...

CSV::Table#by_col_or_row -> CSV::Table (18307.0)

ミックスモードになっている新しい CSV::Table オブジェクトを返します。

...ミックスモードになっている新しい CSV::Table オブジェクトを返します。

元のテーブルモードを変更せずにメソッドチェーンできるので便利です。しか
し、大きなデータセットに対しても同じだけメモリを消費するので気...
...ださい。

//emlist[例][ruby]{
require "csv"

row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
row2 = CSV::Row.new(["header1", "header2"], ["row2_1", "row2_2"])
table = CSV::Table.new([row1, row2]).by_col!
table # => #<CSV::Table mode:col row_count:3>
col_or_row_tabl...
...e = table.by_col_or_row
col_or_row_table # => #<CSV::Table mode:col_or_row row_count:3>
table # => #<CSV::Table mode:col row_count:3>
//}...

絞り込み条件を変える

CSV::Table#by_col_or_row! -> self (18307.0)

自身をミックスモードに変更します。

...ire "csv"

row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
row2 = CSV::Row.new(["header1", "header2"], ["row2_1", "row2_2"])
table = CSV::Table.new([row1, row2]).by_col!
table # => #<CSV::Table mode:col row_count:3>
table.by_col_or_row!
table # => #<CSV::Tab...

CSV::Table#values_at(indices_or_headers) -> Array (18307.0)

デフォルトのミックスモードでは、インデックスのリストを与えると行単位の 参照を行い、行の配列を返します。他の方法は列単位の参照と見なします。行 単位の参照では、返り値は行ごとの配列を要素に持つ配列です。

...たい場合は CSV::Table#by_col!,
CSV
::Table#by_row! を使用してください。

アクセスモードを混在させることはできません。

//emlist[例 ロウモード][ruby]{
require "csv"

row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
row2 = CSV::Row.new(["heade...
...["row2_1", "row2_2"])
table = CSV::Table.new([row1, row2])
table.values_at(1) # => [#<CSV::Row "header1":"row2_1" "header2":"row2_2">]
//}

//emlist[例 カラムモード][ruby]{
require "csv"

row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
row2 = CSV::Row.new(["header1", "header...
...2"], ["row2_1", "row2_2"])
table = CSV::Table.new([row1, row2])
table.by_col!
table.values_at(1) # => [["row1_2"], ["row2_2"]]
//}

@see CSV::Table#by_col!, CSV::Table#by_row!...

CSV::FieldInfo (18007.0)

行が読み込まれたデータソース内でのフィールドの位置の情報を格納するための 構造体です。

...行が読み込まれたデータソース内でのフィールドの位置の情報を格納するための
構造体です。

CSV
クラスではこの構造体はいくつかのメソッドのブロックに渡されます。...

CSV::MalformedCSVError (18007.0)

不正な CSV をパースしようとしたときに発生する例外です。

...不正な CSV をパースしようとしたときに発生する例外です。...

CSV::Table (18007.0)

CSV::Table は CSV ドキュメントを表す二次元のデータ構造です。 行単位や列単位の操作を行うことが出来ます。また必要であれば CSV に 戻すこともできます。

...CSV::Table は CSV ドキュメントを表す二次元のデータ構造です。
行単位や列単位の操作を行うことが出来ます。また必要であれば CSV
戻すこともできます。

ヘッダ行の処理が有効である場合、CSV から返されるテーブルは全...

絞り込み条件を変える

CSV::Table#size -> Integer (18007.0)

Array#length, Array#size に委譲します。

Array#length, Array#size に委譲します。


@see Array#length, Array#size

CSV::Table#each {|column_name, values| ... } -> self (9607.0)

デフォルトのミックスモードかロウモードでは、行単位で繰り返します。カラ ムモードでは、ブロックに列名と対応する値の配列を与え、列単位で繰り返し ます。

...equire "csv"

row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
row2 = CSV::Row.new(["header1", "header2"], ["row2_1", "row2_2"])
row3 = CSV::Row.new(["header1", "header2"], ["row3_1", "row3_2"])
table = CSV::Table.new([row1, row2, row3])
table.each { |row| p row }

# => #<CSV::Row "...
..._1" "header2":"row1_2">
# => #<CSV::Row "header1":"row2_1" "header2":"row2_2">
# => #<CSV::Row "header1":"row3_1" "header2":"row3_2">
//}

//emlist[例 カラムモード][ruby]{
require "csv"

row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
row2 = CSV::Row.new(["header1", "header2...
..."], ["row2_1", "row2_2"])
row3 = CSV::Row.new(["header1", "header2"], ["row3_1", "row3_2"])
table = CSV::Table.new([row1, row2, row3])
table.by_col!
table.each { |column_name, values| print column_name, values, "\n" }

# => header1["row1_1", "row2_1", "row3_1"]
# => header2["row1_2", "row2_2", "row3...

CSV#readline -> Array | CSV::Row (9307.0)

String や IO をラップしたデータソースから一行だけ読み込んで フィールドの配列か CSV::Row のインスタンスを返します。

...ールドの配列か CSV::Row のインスタンスを返します。

データソースは読み込み用にオープンされている必要があります。

@return ヘッダを使用しない場合は配列を返します。
ヘッダを使用する場合は CSV::Row を返します...
...

//emlist[例][ruby]{
require "csv"

csv
= CSV.new(DATA.read)
csv
.readline # => ["header1", "header2"]
csv
.readline # => ["row1_1", "row1_2"]

__END__
header1,header2
row1_1,row1_2
//}...

CSV#readlines -> [Array] | CSV::Table (9307.0)

残りの行を読み込んで配列の配列を返します。 self の生成時に headers オプションに偽でない値が指定されていた場合は CSV::Table オブジェクトを返します。

...い値が指定されていた場合は CSV::Table オブジェクトを返します。

データソースは読み込み用にオープンされている必要があります。

//emlist[例 headers: false][ruby]{
require "csv"

csv
= CSV.new(DATA.read)
csv
.read
# => [["header1", "header2"], ["ro...
..._1", "row1_2"], ["row2_1", "row2_2"]]

__END__
header1,header2
row1_1,row1_2
row2_1,row2_2
//}

//emlist[例 headers: true][ruby]{
require "csv"

csv
= CSV.new(DATA.read, headers: true)
csv
.read
# => #<CSV::Table mode:col_or_row row_count:3>

__END__
header1,header2
row1_1,row1_2
row2_1,row2_2
//}...

CSV#tell -> Integer (9307.0)

IO#pos, IO#tell に委譲します。

IO#pos, IO#tell に委譲します。


@see IO#pos, IO#tell

絞り込み条件を変える

CSV.readlines(path, options = Hash.new) -> [Array] | CSV::Table (9307.0)

CSV ファイルを配列の配列にするために使います。 headers オプションに偽でない値を指定した場合は CSV::Table オブジェクトを返します。

...
CSV
ファイルを配列の配列にするために使います。
headers オプションに偽でない値を指定した場合は CSV::Table オブジェクトを返します。

@param path CSV ファイルのパスを指定します。

@param options CSV.new のオプションと同じオプ...
...しなければなりません。

//emlist[例][ruby]{
require "csv"
require "pp"

File.write("test.csv", <<CSV)
id,first name,last name,age
1,taro,tanaka,20
2,jiro,suzuki,18
3,ami,sato,19
4,yumi,adachi,21
CSV


pp CSV.read("test.csv")

# => [["id", "first name", "last name", "age"],
# ["1", "tar...
.../}

//emlist[例][ruby]{
require "csv"

File.write("test.csv", <<CSV)
id,first name,last name,age
1,taro,tanaka,20
2,jiro,suzuki,18
3,ami,sato,19
4,yumi,adachi,21
CSV


table = CSV.read("test.csv", headers: true)
p table.class # => CSV::Table
p table[0] # => #<CSV::Row "id":"1" "first name":"taro"...

CSV::FieldInfo#header -> String | nil (9307.0)

利用可能な場合はヘッダを表す文字列を返します。

...返します。

//emlist[例][ruby]{
require 'csv'

csv
= CSV.new("date1,date2\n2018-07-09,2018-07-10", headers: true)
csv
.convert do |field,field_info|
p field_info.header
Date.parse(field)
end
p csv.first

# => "date1"
# => "date2"
# => #<CSV::Row "date1":#<Date: 2018-07-09 ((2458309j,0s,0n),...

CSV::FieldInfo#header=(val) (9307.0)

ヘッダを表す文字列をセットします。

ヘッダを表す文字列をセットします。

@param val ヘッダを表す文字列を指定します。

CSV::FieldInfo#index=(val) (9307.0)

インデックスの値をセットします。

インデックスの値をセットします。

@param val インデックスの値を指定します。

CSV::Row#field(header_or_index, minimum_index = 0) -> object | nil (9307.0)

ヘッダの名前かインデックスで値を取得します。フィールドが見つからなかった場合は nil を返します。

...の名前を探します。
重複しているヘッダがある場合に便利です。

//emlist[例][ruby]{
require "csv"

row = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])

row.field("header1") # => "row1_1"
row.field("header2") # => "row1_2"
row["header1"]...

絞り込み条件を変える

CSV::Row#include?(name) -> bool (9307.0)

自身のヘッダに与えられた値が含まれている場合は真を返します。 そうでない場合は偽を返します。

...い場合は偽を返します。

@param name この行のヘッダに含まれているかどうか調べたい値を指定します。

//emlist[例][ruby]{
require "csv"

row = CSV::Row.new(["header1", "header2"], [1, 2])
row.header?("header1") # => true
row.header?("header3") # => false
//}...

CSV::Table#<<(row_or_array) -> self (9307.0)

自身の最後に新しい行を追加します。

...param row_or_array CSV::Row のインスタンスか配列を指定します。
配列を指定した場合は CSV::Row に変換されます。

@return メソッドチェーンのために自身を返します。

//emlist[例][ruby]{
require "csv"

row1 = CSV::Row.new(["header...
...1", "header2"], ["row1_1", "row1_2"])
row2 = CSV::Row.new(["header1", "header2"], ["row2_1", "row2_2"])
table = CSV::Table.new([row1])
table << row2
table.to_a # => [["header1", "header2"], ["row1_1", "row1_2"], ["row2_1", "row2_2"]]
//}...

CSV::Table#==(other) -> bool (9307.0)

自身の全ての行が比較対象と同じである場合は真を返します。 そうでない場合は偽を返します。

...m other CSV::Table を指定します。

//emlist[例][ruby]{
require "csv"

row1_1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
row1_2 = CSV::Row.new(["header1", "header2"], ["row2_1", "row2_2"])
row2_1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
row2_2 = CSV::Row....
...new(["header1", "header2"], ["row2_1", "row2_2"])
table1 = CSV::Table.new([row1_1, row1_2])
table2 = CSV::Table.new([row2_1, row2_2])
table1 == table2 # => true
table2 << CSV::Row.new(["header1", "header2"], ["row3_1", "row3_2"])
table1 == table2 # => false
//}...

CSV::Table#[]=(index_or_header, value) (9307.0)

ミックスモードでは、このメソッドは引数に行番号を指定すれば行単位で動作 し、ヘッダの名前を指定すれば列単位で動作します。

...で動作します。

このメソッドを呼び出す前に CSV::Table#by_col! を呼び出すとカラム
モードになります。また CSV::Table#by_row! を呼び出すとロウモード
になります。

行には配列か CSV::Row のインスタンスを指定します。

列に値...
...][ruby]{
require "csv"

row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
row2 = CSV::Row.new(["header1", "header2"], ["row2_1", "row2_2"])
row3 = CSV::Row.new(["header1", "header2"], ["row3_1", "row3_2"])
table = CSV::Table.new([row1, row2])
table[0] # => #<CSV::Row "header1":"row1_...
...1" "header2":"row1_2">
table[1] # => #<CSV::Row "header1":"row2_1" "header2":"row2_2">
table[1] = row3
table[1] # => #<CSV::Row "header1":"row3_1" "header2":"row3_2">
table.by_col!
table[0] # => ["row1_1", "row3_1"]
table[1] # => ["row1_2", "row3_2"]
table[1] = ["row1_2", "row2_2"]
table[1] # => ["r...

CSV::Table#by_row -> CSV::Table (9307.0)

ロウモードになっている新しい CSV::Table オブジェクトを返します。

...ロウモードになっている新しい CSV::Table オブジェクトを返します。

元のテーブルモードを変更せずにメソッドチェーンできるので便利です。しか
し、大きなデータセットに対しても同じだけメモリを消費するので気をつ...
...by]{
require "csv"

row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
row2 = CSV::Row.new(["header1", "header2"], ["row2_1", "row2_2"])
table = CSV::Table.new([row1, row2])
table # => #<CSV::Table mode:col_or_row row_count:3>
row_table = table.by_row # => #<CSV::Table mode:r...
...ow row_count:3>
row_table[0] # => #<CSV::Row "header1":"row1_1" "header2":"row1_2">
row_table[1] # => #<CSV::Row "header1":"row2_1" "header2":"row2_2">
//}...

絞り込み条件を変える

CSV::Table#by_row! -> self (9307.0)

自身をロウモードに変更します。

...y]{
require "csv"

row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
row2 = CSV::Row.new(["header1", "header2"], ["row2_1", "row2_2"])
table = CSV::Table.new([row1, row2])
table # => #<CSV::Table mode:col_or_row row_count:3>
table.by_row!
table # => #<CSV::Table mode:...
...row row_count:3>
table[0] # => #<CSV::Row "header1":"row1_1" "header2":"row1_2">
table[1] # => #<CSV::Row "header1":"row2_1" "header2":"row2_2">
//}...

CSV::Table#each {|row| ... } -> self (9307.0)

デフォルトのミックスモードかロウモードでは、行単位で繰り返します。カラ ムモードでは、ブロックに列名と対応する値の配列を与え、列単位で繰り返し ます。

...equire "csv"

row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
row2 = CSV::Row.new(["header1", "header2"], ["row2_1", "row2_2"])
row3 = CSV::Row.new(["header1", "header2"], ["row3_1", "row3_2"])
table = CSV::Table.new([row1, row2, row3])
table.each { |row| p row }

# => #<CSV::Row "...
..._1" "header2":"row1_2">
# => #<CSV::Row "header1":"row2_1" "header2":"row2_2">
# => #<CSV::Row "header1":"row3_1" "header2":"row3_2">
//}

//emlist[例 カラムモード][ruby]{
require "csv"

row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
row2 = CSV::Row.new(["header1", "header2...
..."], ["row2_1", "row2_2"])
row3 = CSV::Row.new(["header1", "header2"], ["row3_1", "row3_2"])
table = CSV::Table.new([row1, row2, row3])
table.by_col!
table.each { |column_name, values| print column_name, values, "\n" }

# => header1["row1_1", "row2_1", "row3_1"]
# => header2["row1_2", "row2_2", "row3...

CSV::Table#empty? -> bool (9307.0)

Array#empty? に委譲します。

Array#empty? に委譲します。


@see Array#empty?

CSV::Table#mode -> Symbol (9307.0)

現在のアクセスモードを返します。

...現在のアクセスモードを返します。

//emlist[例][ruby]{
require "csv"

row = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
table = CSV::Table.new([row])
table.mode # => :col_or_row
table.by_col!
table.mode # => :col
//}...

CSV::Table#push(*rows) -> self (9307.0)

複数の行を追加するためのショートカットです。

...を追加するためのショートカットです。

@param rows CSV::Row のインスタンスか配列を指定します。

以下と同じです。
require 'csv'
csv
= CSV.new("a,b,c\n,1,2,3", headers: true)
table = csv.read
rows = [[4, 5, 6], [7, 8, 9]]
rows.each{|row| table << row...

絞り込み条件を変える

CSV::Table.new(array_of_rows) -> CSV::Table (9307.0)

自身を初期化します。

...す。

@param array_of_rows CSV::Row のインスタンスの配列を指定します。

//emlist[例][ruby]{
require "csv"

row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
row2 = CSV::Row.new(["header1", "header2"], ["row2_1", "row2_2"])
table = CSV::Table.new([row1, row2])
tabl...

CSV#to_i -> Integer (9007.0)

IO#fileno, IO#to_i に委譲します。

IO#fileno, IO#to_i に委譲します。

CSV::FieldInfo#index -> Integer (9007.0)

行内で何番目のフィールドかわかるゼロベースのインデックスを返します。

...クスを返します。

//emlist[例][ruby]{
require 'csv'

csv
= CSV.new("date1,date2\n2018-07-09,2018-07-10", headers: true)
csv
.convert do |field,field_info|
p field_info.index
Date.parse(field)
end
p csv.first

# => 0
# => 1
# => #<CSV::Row "date1":#<Date: 2018-07-09 ((2458309j,0s,0n),+0s,...

CSV::Row#size -> Integer (9007.0)

Array#length, Array#size に委譲します。

Array#length, Array#size に委譲します。


@see Array#size

CSV::Table#[](index_or_header) -> object (9007.0)

ミックスモードでは、このメソッドは引数に行番号を指定すれば行単位で動作 し、ヘッダの名前を指定すれば列単位で動作します。

...ヘッダの名前を指定すれば列単位で動作します。

このメソッドを呼び出す前に CSV::Table#by_col! を呼び出すとカラム
モードになります。また CSV::Table#by_row! を呼び出すとロウモード
になります。

@param index_or_header 行番号かヘ...
...例][ruby]{
require "csv"

row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
row2 = CSV::Row.new(["header1", "header2"], ["row2_1", "row2_2"])
table = CSV::Table.new([row1, row2])
table[0] # => #<CSV::Row "header1":"row1_1" "header2":"row1_2">
table[1] # => #<CSV::Row "header1":"row2...

絞り込み条件を変える

CSV::Table#headers -> Array (9007.0)

自身のヘッダ行を返します。

...ます。

テーブルが空である場合は空の配列を返します。

//emlist[例][ruby]{
require "csv"

row = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
table = CSV::Table.new([row])
table.headers # => ["header1", "header2"]
//}...

CSV::Table#inspect -> String (9007.0)

モードとサイズを US-ASCII な文字列で返します。

...モードとサイズを US-ASCII な文字列で返します。

例:
require 'csv'
csv
= CSV.new("a,b,c\n1,2,3", headers: true)
table = csv.read
table.inspect # => "#<CSV::Table mode:col_or_row row_count:2>"...

CSV::Table#to_a -> [Array] (9007.0)

配列の配列を返します。

...の要素はデータを表わします。

//emlist[例][ruby]{
require "csv"

row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
row2 = CSV::Row.new(["header1", "header2"], ["row2_1", "row2_2"])
table = CSV::Table.new([row1, row2])
table.to_a # => [["header1", "header2"], ["row1_1",...

CSV::Table#to_csv(options = Hash.new) -> String (9007.0)

CSV の文字列に変換して返します。

...
CSV
の文字列に変換して返します。

ヘッダを一行目に出力します。その後に残りのデータを出力します。

デフォルトでは、ヘッダを出力します。オプションに :write_headers =>
false を指定するとヘッダを出力しません。

例:...
...require 'csv'
csv
= CSV.new("a,b,c\n,1,2,3", headers: true)
table = csv.read
table.to_csv # => "a,b,c\n1,2,3\n"
table.to_csv(write_headers: false) # => "1,2,3\n"...

CSV::Table#to_s(options = Hash.new) -> String (9007.0)

CSV の文字列に変換して返します。

...
CSV
の文字列に変換して返します。

ヘッダを一行目に出力します。その後に残りのデータを出力します。

デフォルトでは、ヘッダを出力します。オプションに :write_headers =>
false を指定するとヘッダを出力しません。

例:...
...require 'csv'
csv
= CSV.new("a,b,c\n,1,2,3", headers: true)
table = csv.read
table.to_csv # => "a,b,c\n1,2,3\n"
table.to_csv(write_headers: false) # => "1,2,3\n"...

絞り込み条件を変える

CSV#convert {|field, field_info| ... } (607.0)

引数 name で指定した変換器かブロックに各フィールドを渡して文字列から別 のオブジェクトへと変換します。

...フィールドを渡して文字列から別
のオブジェクトへと変換します。

引数 name を指定した場合は、組み込みの CSV::Converters を変換器
として利用するために使います。また、独自の変換器を追加することもできま
す。

ブロッ...
... CSV::FieldInfo のインス
タンスを受け取ります。ブロックは変換後の値かフィールドそのものを返さな
ければなりません。

@param name 変換器の名前を指定します。

//emlist[例 name で Converter を指定][ruby]{
require "csv"

csv
= CSV.new("...
...07-09,2018-07-10")
csv
.convert(:date)
csv
.read # => 2018-07-09 ((2458309j,0s,0n),+0s,2299161j)>, #<Date: 2018-07-10 ((2458310j,0s,0n),+0s,2299161j)>
//}

//emlist[例 ブロックを指定][ruby]{
require "csv"

csv
= CSV.new("date1,date2\n2018-07-09,2018-07-10", headers: true)
csv
.convert do |fiel...

CSV#header_convert {|field, field_info| ... } (607.0)

CSV#convert に似ていますが、ヘッダ行用のメソッドです。

...
CSV
#convert に似ていますが、ヘッダ行用のメソッドです。

このメソッドはヘッダ行を読み込む前に呼び出さなければなりません。

@param name 変換器の名前を指定します。

//emlist[例 name を指定][ruby]{
require "csv"

csv
= CSV.new("heade...
..._2", { headers: true })
csv
.header_convert(:symbol)
csv
.first.headers # => [:header1, :header2]
//}

//emlist[例 ブロックを指定][ruby]{
require "csv"

csv
= CSV.new("header1,header2\nrow1_1,row1_2", { headers: true })
csv
.header_convert do |field|
field.to_sym
end
csv
.first.headers # => [:...
...header1, :header2]
//}

@see CSV#header_converters, CSV#convert...

CSV#<<(row) -> self (307.0)

自身に row を追加します。

...m row 配列か CSV::Row のインスタンスを指定します。
CSV
::Row のインスタンスが指定された場合は、CSV::Row#fields の値
のみが追加されます。

//emlist[例 配列を指定][ruby]{
require "csv"

File.write("test.csv", <<CSV)
id,first name...
...i,adachi,21
CSV

CSV
.open("test.csv", "a") do |csv|
csv
.puts(["5", "saburo", "kondo", "34"])
end

print File.read("test.csv")
# => id,first name,last name,age
# 1,taro,tanaka,20
# 2,jiro,suzuki,18
# 3,ami,sato,19
# 4,yumi,adachi,21
# 5,saburo,kondo,34
//}

//emlist[例 CSV::Row を...
...ruby]{
require "csv"

File.write("test.csv", <<CSV)
id,first name,last name,age
1,taro,tanaka,20
2,jiro,suzuki,18
3,ami,sato,19
4,yumi,adachi,21
CSV

CSV
.open("test.csv", "a") do |csv|
row = CSV::Row.new(["id", "first name", "last name", "age"], ["5", "saburo", "kondo", "34"])
csv
.add_row(row)
en...

CSV#add_row(row) -> self (307.0)

自身に row を追加します。

...m row 配列か CSV::Row のインスタンスを指定します。
CSV
::Row のインスタンスが指定された場合は、CSV::Row#fields の値
のみが追加されます。

//emlist[例 配列を指定][ruby]{
require "csv"

File.write("test.csv", <<CSV)
id,first name...
...i,adachi,21
CSV

CSV
.open("test.csv", "a") do |csv|
csv
.puts(["5", "saburo", "kondo", "34"])
end

print File.read("test.csv")
# => id,first name,last name,age
# 1,taro,tanaka,20
# 2,jiro,suzuki,18
# 3,ami,sato,19
# 4,yumi,adachi,21
# 5,saburo,kondo,34
//}

//emlist[例 CSV::Row を...
...ruby]{
require "csv"

File.write("test.csv", <<CSV)
id,first name,last name,age
1,taro,tanaka,20
2,jiro,suzuki,18
3,ami,sato,19
4,yumi,adachi,21
CSV

CSV
.open("test.csv", "a") do |csv|
row = CSV::Row.new(["id", "first name", "last name", "age"], ["5", "saburo", "kondo", "34"])
csv
.add_row(row)
en...

CSV#binmode -> self (307.0)

IO#binmode に委譲します。

IO#binmode に委譲します。


@see IO#binmode

絞り込み条件を変える

CSV#binmode? -> bool (307.0)

IO#binmode? に委譲します。

IO#binmode? に委譲します。


@see IO#binmode?

CSV#convert {|field| ... } (307.0)

引数 name で指定した変換器かブロックに各フィールドを渡して文字列から別 のオブジェクトへと変換します。

...フィールドを渡して文字列から別
のオブジェクトへと変換します。

引数 name を指定した場合は、組み込みの CSV::Converters を変換器
として利用するために使います。また、独自の変換器を追加することもできま
す。

ブロッ...
... CSV::FieldInfo のインス
タンスを受け取ります。ブロックは変換後の値かフィールドそのものを返さな
ければなりません。

@param name 変換器の名前を指定します。

//emlist[例 name で Converter を指定][ruby]{
require "csv"

csv
= CSV.new("...
...07-09,2018-07-10")
csv
.convert(:date)
csv
.read # => 2018-07-09 ((2458309j,0s,0n),+0s,2299161j)>, #<Date: 2018-07-10 ((2458310j,0s,0n),+0s,2299161j)>
//}

//emlist[例 ブロックを指定][ruby]{
require "csv"

csv
= CSV.new("date1,date2\n2018-07-09,2018-07-10", headers: true)
csv
.convert do |fiel...

CSV#each {|row| ... } -> nil (307.0)

各行に対してブロックを評価します。

各行に対してブロックを評価します。

データソースは読み込み用にオープンされていなければなりません。

CSV#eof -> bool (307.0)

IO#eof, IO#eof? に委譲します。

IO#eof, IO#eof? に委譲します。


@see IO#eof, IO#eof?

CSV#eof? -> bool (307.0)

IO#eof, IO#eof? に委譲します。

IO#eof, IO#eof? に委譲します。


@see IO#eof, IO#eof?

絞り込み条件を変える

CSV#force_quotes? -> bool (307.0)

出力される全てのフィールドがクオートされる場合は、真を返します。

...]{
require "csv"

rows = [["header1", "header2"], ["row1_1,", "row1_2"]]
result = CSV.generate(force_quotes: false) do |csv|
rows.each { |row| csv << row }
csv
.force_quotes? # => false
end
print result

# => header1,header2
# "row1_1,",row1_2
//}

//emlist[例][ruby]{
require "csv"

rows = [[...
..."header1", "header2"], ["row1_1,", "row1_2"]]
result = CSV.generate(force_quotes: true) do |csv|
rows.each { |row| csv << row }
csv
.force_quotes? # => true
end
print result

# => true
# => "header1","header2"
# "row1_1,","row1_2"
//}

@see CSV.new...

CSV#fsync -> 0 | nil (307.0)

IO#fsync に委譲します。

IO#fsync に委譲します。

CSV#header_convert {|field| ... } (307.0)

CSV#convert に似ていますが、ヘッダ行用のメソッドです。

...
CSV
#convert に似ていますが、ヘッダ行用のメソッドです。

このメソッドはヘッダ行を読み込む前に呼び出さなければなりません。

@param name 変換器の名前を指定します。

//emlist[例 name を指定][ruby]{
require "csv"

csv
= CSV.new("heade...
..._2", { headers: true })
csv
.header_convert(:symbol)
csv
.first.headers # => [:header1, :header2]
//}

//emlist[例 ブロックを指定][ruby]{
require "csv"

csv
= CSV.new("header1,header2\nrow1_1,row1_2", { headers: true })
csv
.header_convert do |field|
field.to_sym
end
csv
.first.headers # => [:...
...header1, :header2]
//}

@see CSV#header_converters, CSV#convert...

CSV#header_row? -> bool (307.0)

次に読み込まれる行が、ヘッダである場合に真を返します。 そうでない場合は、偽を返します。

...に読み込まれる行が、ヘッダである場合に真を返します。
そうでない場合は、偽を返します。

//emlist[例][ruby]{
require "csv"

csv
= CSV.new("header1,header2\nrow1_1,row1_2", headers: true)
csv
.header_row? # => true
csv
.readline
csv
.header_row? # => false
//}...

CSV#headers -> Array | true | nil (307.0)

nil を返した場合は、ヘッダは使用されません。 真を返した場合は、ヘッダを使用するが、まだ読み込まれていません。 配列を返した場合は、ヘッダは既に読み込まれています。

...は既に読み込まれています。

//emlist[例][ruby]{
require "csv"

csv
= CSV.new("header1,header2\nrow1_1,row1_2")
csv
.headers # => nil
csv
= CSV.new("header1,header2\nrow1_1,row1_2", headers: true)
csv
.headers # => true
csv
.read
csv
.headers # =>["header1", "header2"]
//}

@see CSV.new...

絞り込み条件を変える

CSV#isatty -> bool (307.0)

IO#isatty, IO#tty? に委譲します。

IO#isatty, IO#tty? に委譲します。


@see IO#isatty, IO#tty?

CSV#pid -> Integer | nil (307.0)

IO#pid に委譲します。

IO#pid に委譲します。


@see IO#pid

CSV#puts(row) -> self (307.0)

自身に row を追加します。

...m row 配列か CSV::Row のインスタンスを指定します。
CSV
::Row のインスタンスが指定された場合は、CSV::Row#fields の値
のみが追加されます。

//emlist[例 配列を指定][ruby]{
require "csv"

File.write("test.csv", <<CSV)
id,first name...
...i,adachi,21
CSV

CSV
.open("test.csv", "a") do |csv|
csv
.puts(["5", "saburo", "kondo", "34"])
end

print File.read("test.csv")
# => id,first name,last name,age
# 1,taro,tanaka,20
# 2,jiro,suzuki,18
# 3,ami,sato,19
# 4,yumi,adachi,21
# 5,saburo,kondo,34
//}

//emlist[例 CSV::Row を...
...ruby]{
require "csv"

File.write("test.csv", <<CSV)
id,first name,last name,age
1,taro,tanaka,20
2,jiro,suzuki,18
3,ami,sato,19
4,yumi,adachi,21
CSV

CSV
.open("test.csv", "a") do |csv|
row = CSV::Row.new(["id", "first name", "last name", "age"], ["5", "saburo", "kondo", "34"])
csv
.add_row(row)
en...

CSV#read -> [Array] | CSV::Table (307.0)

残りの行を読み込んで配列の配列を返します。 self の生成時に headers オプションに偽でない値が指定されていた場合は CSV::Table オブジェクトを返します。

...い値が指定されていた場合は CSV::Table オブジェクトを返します。

データソースは読み込み用にオープンされている必要があります。

//emlist[例 headers: false][ruby]{
require "csv"

csv
= CSV.new(DATA.read)
csv
.read
# => [["header1", "header2"], ["ro...
..._1", "row1_2"], ["row2_1", "row2_2"]]

__END__
header1,header2
row1_1,row1_2
row2_1,row2_2
//}

//emlist[例 headers: true][ruby]{
require "csv"

csv
= CSV.new(DATA.read, headers: true)
csv
.read
# => #<CSV::Table mode:col_or_row row_count:3>

__END__
header1,header2
row1_1,row1_2
row2_1,row2_2
//}...

CSV#reopen(io) -> self (307.0)

IO#reopen に委譲します。

IO#reopen に委譲します。


@see IO#reopen

絞り込み条件を変える

CSV#return_headers? -> bool (307.0)

ヘッダを返す場合は、真を返します。 そうでない場合は、偽を返します。

...]{
require "csv"

csv
= CSV.new("header1,header2\nrow1_1,row1_2", headers: true, return_headers: false)
csv
.return_headers? # => false
csv
.shift # => #<CSV::Row "header1":"row1_1" "header2":"row1_2">

csv
= CSV.new("header1,header2\nrow1_1,row1_2", headers: true, return_headers: true)
csv
.return_hea...
...ders? # => true
csv
.shift # => #<CSV::Row "header1":"header1" "header2":"header2">
//}

@see CSV.new...

CSV#stat -> File::Stat (307.0)

IO#stat に委譲します。

IO#stat に委譲します。


@see IO#stat

CSV#sync -> bool (307.0)

IO#sync に委譲します。

IO#sync に委譲します。


@see IO#sync

CSV#to_io -> self (307.0)

IO#to_io に委譲します。

IO#to_io に委譲します。


@see IO#to_io

CSV#truncate(path, length) -> 0 (307.0)

File#truncate に委譲します。

File#truncate に委譲します。


@see File#truncate

絞り込み条件を変える

<< 1 2 > >>