读取.txt文件,对其进行操作,然后将其推送到Ruby中的.csv文件

时间:2014-09-29 00:34:30

标签: ruby-on-rails ruby csv

我是Ruby的新手,但我似乎无法做到这一点。

这里是grocery_list2.txt的样子:

beer,  milk,  apples,  bacon

以及我想要的.csv文件中返回的内容,但我甚至不知道从哪里开始重新格式化它看起来像这样...

Item 1 -- beer
Item 2 -- milk
Item 3 -- apples
Item 4 -- bacon

这是我的代码:

# reading the grocery list from grocery_list2.txt and splitting at each ","
csv_grocery_list = IO.read("grocery_list2.txt").split(",")

#I want this to open a new CSV file called grocery_list3.csv and put in my grocery list
CSV.open("grocery_list3.csv", "w") do |csv|
csv_grocery_list.each do |item|
    csv << p
 end
end

目前,我无法停止收到错误,也无法推送到CSV。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您的代码几乎是正确的。看起来你开始在一行上有一堆字段,所以你需要使用拆分,就像你正在做的那样将项目放入数组中。接下来,打开一个用于编写的csv,遍历数组(使用索引,这样就可以得到项目编号),并将其写入新的CSV文件。

注意:csv push操作需要一个列列表,即使只有一列。

csv_grocery_list = IO.read("grocery_list2.txt").split(",")

CSV.open("grocery_list3.csv", "w") do |csv|
  csv_grocery_list.each_with_index do |item, index|
    csv << ["Item #{index + 1} -- #{item}"]
  end
end