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



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

value 1, value2, value3, etc...

这些值需要添加到数据库中。

有什么建议吗?

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

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

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(',')来手动执行此操作,但我会使用上面的库之一。

快速且肮脏的解决方案:

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

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

这个简单的文件迭代不关心顺序或特殊字段,因为问题中没有提到它。

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

希望这能有所帮助。

相关内容

  • 没有找到相关文章

最新更新