open( filename, options = Hash.new ) { |faster_csv| ... }
open( filename, mode = "rb", options = Hash.new )
open( filename, options = Hash.new )
This method opens an IO object, and wraps that with CSV. This is intended as the primary interface for writing a CSV file.
You must pass a filename
and may optionally add a
mode
for Ruby's open(). You may also pass an optional Hash containing any options
::new understands as the final argument.
This method works like Ruby's open() call, in that it will pass a CSV object to a provided block and close it when the block terminates, or it will return the CSV object when no block is provided. (Note: This is different from the Ruby 1.8 CSV library which passed rows to the block. Use ::foreach for that behavior.)
You must provide a mode
with an embedded Encoding designator unless your data is in Encoding.default_external.
CSV will check the Encoding of the underlying IO object (set by the mode
you pass) to
determine how to parse the data. You may provide a second Encoding to have the data transcoded as it is read
just as you can with a normal call to IO.open. For example,
"rb:UTF-32BE:UTF-8"
would read UTF-32BE data from
the file but transcode it to UTF-8 before CSV parses
it.
An opened CSV object will delegate to many IO methods for convenience. You may call:
-
binmode()
-
binmode?()
-
close()
-
close_read()
-
close_write()
-
closed?()
-
eof()
-
eof?()
-
external_encoding()
-
fcntl()
-
fileno()
-
flock()
-
flush()
-
fsync()
-
internal_encoding()
-
ioctl()
-
isatty()
-
path()
-
pid()
-
pos()
-
pos=()
-
reopen()
-
seek()
-
stat()
-
sync()
-
sync=()
-
tell()
-
to_i()
-
to_io()
-
truncate()
-
tty?()
Please login to continue.