开发者

Ruby parse comma separated text file

I need some help with a Ruby scri开发者_运维问答pt I can call from the console. The script needs to parse a simple .txt file with comma separated values.

value 1, value2, value3, etc...

The values needs to be added to the database.

Any suggestions?


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

You will get the values in the array and use it to store to database. If you want more functions, you can make use of FasterCSV gem.


Ruby 1.9.2 has a very good CSV library which is useful for this stuff: http://www.ruby-doc.org/stdlib/libdoc/csv/rdoc/index.html

On earlier versions of Ruby you could use http://fastercsv.rubyforge.org/ (which essentially became CSV in 1.9.2)

You could do it manually by reading the file into a string and using .split(',') but I'd go with one of the libraries above.


Quick and dirty solution:

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

Now you can iterate the result array and save the values to the database.

This simple file iteration doesn't take care for order or special fields, because it wasn't mentioned in the question.


Something easy to get you started:

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

Hope this helps.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜