所以我有一个看起来像这样的方法:
csvs = Dir["#{@dir_name}/#{@state}/*.csv"]
csvs.each do |csv|
city = csv.split(/[\/]|.csv-updated|.csv/).last
CSV.foreach(csv, headers: true) do |row|
temp = extract_email(row['Website'])
# add result from temp above to existing row
end
end
基本上我想要做的是,在我在CSV中处理的每个row
上,我想对row['Website']
中的数据执行某些操作(在temp
中表示为driver.get()
上面的代码段,然后我想获取结果并将其作为新列添加到该行。
所以基本上我想追加到每一行。我该怎么做?
答案 0 :(得分:0)
我想出来了。
基本上,我无法像这样编辑现有的CSV,所以我只需要阅读old_csv
中的所有行并创建new_csv
。从old_csv
开始,我将相应的数据从old_csv
传递到我想要的方法(即extract_email(row['Website'])
,然后我处理该信息并收集数组中的电子邮件。
从那里,我所要做的就是遍历temp
的集合并将其添加到row
对象:
temp.each { |t| row << t }
然后我只需将row
添加到新CSV,其中包含旧行+新添加的列。所以本质上我正在扩展每个row
。