The second parameter means the open mode of the file.

CSV.open("path/to/file.csv", "wb") do |csv|
  csv << ["row", "of", "CSV", "data"]
  csv << ["another", "row"]
  # ...
end

This are the available modes:

  • r: Read-only, starts at beginning of file (default mode).

  • r+: Read-write, starts at beginning of file.

  • w: Write-only, truncates existing file to zero length or creates a new file for writing.

  • w+: Read-write, truncates existing file to zero length or creates a new file for reading and writing.

  • a: Write-only, each write call appends data at end of file. Creates a new file for writing if file does not exist.

  • a+: Read-write, each write call appends data at end of file. Creates a new file for reading and writing if file does not exist.

The following modes must be used separately, and along with one or more of the modes seen above.

  • b: Binary file mode

  • t: Text file mode


👉 StackOverflow

👉 ruby-doc