使用Ruby 1.9和CSV庫文件,我似乎無法追加行。文檔中的示例打開文件,並覆蓋該行。將行附加到文檔的正確方法是什麼?從文檔將行添加到csv文件Ruby 1.9 CSV庫文件
例子:
require 'csv'
CSV.open("path/to/file.csv", "wb") do |csv|
csv << ["row", "of", "CSV", "data"]
csv << ["another", "row"]
# ...
end
使用Ruby 1.9和CSV庫文件,我似乎無法追加行。文檔中的示例打開文件,並覆蓋該行。將行附加到文檔的正確方法是什麼?從文檔將行添加到csv文件Ruby 1.9 CSV庫文件
例子:
require 'csv'
CSV.open("path/to/file.csv", "wb") do |csv|
csv << ["row", "of", "CSV", "data"]
csv << ["another", "row"]
# ...
end
我想你可以改變打開使用ab
:
CSV.open("t.csv", "ab") do |csv|
我通常會使用以下方法來寫一個CSV文件(或任何文件)
File.open("filename", 'a+') {|f| f.write("datatowrite\n)}
File.open('filename', 'a'){ |outfile|
CSV::Writer.generate(outfile) do |csv|
csv << ['c1', nil, '', '"', "\r\n", 'c2']
end
}
AFAIK CSV :: Writer是[不可用於Ruby 1.9](http://stackoverflow.com/a/2140482/514483) – robd 2013-06-19 09:43:06
請注意,'a +'用於讀*和* [寫/附加](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),可能結合其他模式設置。 – 2010-08-18 07:31:49
我們應該總是使用+,因爲如果不存在,它將創建文件。 – user1735921 2017-10-10 12:30:41