2013-07-25 5 views
9

Tôi nghĩ rằng tôi đang thiếu một cái gì đó thực sự rõ ràng ở đây, nhưng đối số thứ hai mà mọi người đặt trong phương thức CSV.open là gì, trong trường hợp này là 'wb', tôi đã thấy các chữ cái khác được đặt ở đây, nhưng không ai thực sự giải thích những gì nó làm. Nó làm gì?Tham số/đối số thứ hai cho CSV.open() trong ruby ​​là gì?

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

Tài liệu ruby ​​dường như không giải thích được gì. http://www.ruby-doc.org/stdlib-2.0/libdoc/csv/rdoc/CSV.html

Cảm ơn!

+0

http://apidock.com/ruby/IO/open/class –

Trả lời

18

Từ các tài liệu IO Open Mode:

"r" Read-only, bắt đầu ngay từ đầu của tập tin (chế độ mặc định).

"r +" Đọc-ghi, bắt đầu ở đầu tệp.

"w" Chỉ ghi, cắt bớt tệp hiện có thành độ dài bằng 0 hoặc tạo tệp mới để ghi.

"w +" Đọc-ghi, cắt bớt tệp hiện có thành độ dài bằng không hoặc tạo tệp mới để đọc và viết.

"a" Chỉ ghi, bắt đầu ở cuối tệp nếu tệp tồn tại, nếu không tạo tệp mới để ghi.

"a +" Đọc-ghi, bắt đầu ở cuối tệp nếu tệp tồn tại, nếu không tạo tệp mới để đọc và viết .

+1

Đối với bất kỳ ai quá lười để theo liên kết: hậu tố 'b' có nghĩa là chế độ tệp" nhị phân "(mà" Suppresses EOL <-> chuyển đổi CRLF trên Windows. Và đặt mã hóa bên ngoài thành ASCII-8BIT trừ khi được chỉ định rõ ràng. "); hậu tố 't' có nghĩa là chế độ tệp" văn bản " – Alec