我需要一些可以从控制台调用的Ruby脚本的帮助。该脚本需要使用逗号分隔值解析一个简单的.txt文件。
value 1, value2, value3, etc...
需要将值添加到数据库中。
有什么建议吗?
答案 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
希望这有帮助。