我需要一些帮助,可以从控制台调用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
希望这能有所帮助。