2015-07-20 106 views
0

我有一個Ruby腳本,通過CSV,確定一些信息,然後放出一個生成的CSV文件。在Python中,我可以分別使用DictReader和DictWriter打開我的源文件和結果文件,並將行寫入字典,其中鍵是文件頭的值。在Ruby中似乎沒有可行的方法來做到這一點,但我希望有人能指點我一個更好的解決方案,而不是將所有結果散列存儲在數組中,並在事後寫入它們。Ruby等價於Python的DictWriter?

+1

FasterCSV寶石的Ruby? FasterCSV的[Documentation](http://fastercsv.rubyforge.org/classes/FasterCSV.html)。 – vgoff

回答

2

當啓用標題時,標準庫「CSV」爲行提供類似散列的行爲。

require 'csv' 

CSV.open("file.csv", "wb") do |csv_out| 
    CSV.foreach("test.csv", headers: true) do |row| 
    row["header2"].upcase! # hashlike behaviour 
    row["new_header"] = 12 # add a new column 
    csv_out << row 
    end 
end 

(test.csv具有頭1,一個HEADER2和一些隨機逗號分隔串線。)