Ruby解析逗号分隔的文本文件

时间:2011-06-06 08:38:37

标签: ruby ruby-on-rails-3

我需要一些可以从控制台调用的Ruby脚本的帮助。该脚本需要使用逗号分隔值解析一个简单的.txt文件。

value 1, value2, value3, etc...

需要将值添加到数据库中。

有什么建议吗?

4 个答案:

答案 0 :(得分:7)

array = File.read("csv_file.txt").split(",").map(&:strip)

您将获取数组中的值并使用它来存储到数据库。如果您想要更多功能,可以使用FasterCSV gem

答案 1 :(得分:2)

快速而肮脏的解决方案:

result = []
File.open("<path-to-file>","r") do |handle|
  handle.each_line do |line|
    result << line.split(",").strip
  end
end # closes automatically when EOF reached

result.flatten!
result # => big array of values

现在您可以迭代结果数组并将值保存到数据库中。

这个简单的文件迭代不会关注订单或特殊字段,因为问题中没有提及。

答案 2 :(得分:2)

Ruby 1.9.2有一个非常好的CSV库,对这些东西非常有用:http://www.ruby-doc.org/stdlib/libdoc/csv/rdoc/index.html

在早期版本的Ruby上,您可以使用http://fastercsv.rubyforge.org/(在1.9.2中基本上成为CSV)

您可以通过将文件读入字符串并使用.split(',')手动完成,但我会使用上面的其中一个库。

答案 3 :(得分:0)

很容易让你开始:

IO.readlines("csv_file.txt", '').each do |line|
  values = line.split(",").collect(&:strip)
  # do something with the values?
end

希望这有帮助。