将行附加到csv文件Ruby 1.9 CSV lib

che*_*ale 25 ruby csv ruby-1.9

使用Ruby 1.9和CSV lib,我似乎无法追加一行.文档中的示例打开文件,并覆盖该行.将行附加到文档的正确方法是什么?

文档示例:

require 'csv'
CSV.open("path/to/file.csv", "wb") do |csv|
  csv << ["row", "of", "CSV", "data"]
  csv << ["another", "row"]
  # ...
end
Run Code Online (Sandbox Code Playgroud)

Mar*_*ins 38

我想你可以改变开放使用ab:

CSV.open("t.csv", "ab") do |csv|
Run Code Online (Sandbox Code Playgroud)


Ste*_*eve 7

我将通常使用以下内容写入csv文件(或任何文件)

File.open("filename", 'a+') {|f| f.write("datatowrite\n)}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,'a +'用于read*和*[write/append](http://ruby-doc.org/docs/ProgrammingRuby/html/ref_c_io.html).如果你只需要追加,那么'a'就足够了.您也可以使用[File :: APPEND](http://ruby-doc.org/docs/ProgrammingRuby/html/ref_c_file.html),可能与其他模式设置结合使用. (4认同)