Ruby相当于Python的DictWriter?

时间:2015-07-20 00:41:14

标签: ruby csv

我有一个Ruby脚本,它通过CSV,确定一些信息,然后输出生成的CSV文件。在Python中,我能够分别用DictReader和DictWriter打开我的源文件和结果文件,并将行写为字典,其中键是文件头值。在Ruby中没有一种可管理的方法可以做到这一点,但我希望有人能指出我比将所有结果哈希存储在数组中并在事后写入更好的解决方案

1 个答案:

答案 0 :(得分: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有一个header1,一个header2和一些随机逗号分隔的字符串行。)