Guest User

Untitled

a guest
May 22nd, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. #!/usr/bin/env ruby
  2.  
  3. filename = ARGV.first
  4.  
  5. if filename.nil? or filename == ""
  6. puts "Provide the filename of the CSV file with disbursement details as an argument."
  7. exit
  8. end
  9.  
  10. begin
  11. require 'fileutils'
  12. require 'rubygems'
  13. require 'fastercsv'
  14. rescue
  15. puts "Couldn't load FasterCSV. Try running \"sudo gem install fastercsv\" and try again."
  16. exit
  17. end
  18.  
  19. unless File.exists?(filename)
  20. puts "Couldn't locate #{filename}. Place it in the same directory as this script."
  21. exit
  22. end
  23.  
  24.  
  25. puts "Reading #{filename} for names..."
  26. names = {}
  27. i = 0
  28. FasterCSV.foreach(filename) do |row|
  29. name = row[0]
  30. names[name] ||= 0
  31. names[name] += 1
  32.  
  33. i += 1
  34. puts "Read #{i} rows..." if i % 50000 == 0
  35. end
  36.  
  37. FileUtils.rm("all-names.csv") if File.exist?("all-names.csv")
  38. FasterCSV.open("all-names.csv", "w") do |csv|
  39. csv << ['name', 'num_rows']
  40. names.keys.sort.each do |key|
  41. csv << [key, names[key]]
  42. end
  43. end
  44. puts "Wrote names to all-names.csv."
Add Comment
Please, Sign In to add comment