Использование класса CSV для анализа a.csv-файл в Ruby

Я использую Ruby 1.9.3, и я обнаружил класс CSV, но я не могу заставить его работать. В принципе, я хочу иметь возможность манипулировать различными вариантами CSV, а затем вытащить.csv-файл в массив для работы, в конечном итоге выталкивая этот массив обратно в новый файл.

это то, что у меня есть в настоящее время:

require 'csv'
CSV_Definition = CSV.New(:header_converters => :symbol)

CSV_Total = CSV.Read(File.Path("C:ScriptsSQL_Log_0.csv"))

однако я не думаю, что это правильный способ изменить :header_converters. В настоящее время я не могу заставить IRB работать для анализа этих фрагментов кода (я не конечно, как require 'csv' в IRB), поэтому у меня нет конкретного сообщения об ошибке. Мои ожидания для этого будут заключаться в создании массива (CSV_Total), который имеет заголовок без символов в нем. Следующий шаг-поместить этот массив в новый файл. В основном это будет скраб CSV-файлов.

1 ответов


Ruby раньше имел собственную встроенную библиотеку CSV, которая была заменена на FasterCSV начиная с версии 1.9, нажмите на ссылку для документации.

все, что требуется с вашей стороны, это использовать для импорта класса CSV через require 'csv' оператор везде, где вы хотите использовать его и обрабатывать соответственно. Это довольно легко построить массив с помощью оператора foreach , например:

человек.csv

Merry,Christmas
Hal,Apenyo
Terri,Aki
Willy,Byte

process_people.rb

require 'csv'    

people = []

CSV.foreach(File.path("people.csv")) do |row|
    # Where row[i] corresponds to a zero-based value/column in the csv
    people << [row[0] + " " + row[1]]
end

puts people.to_s 
=> [["Merry Christmas"], ["Hal Apenyo"], ["Terri Aki"], ["Willy Byte"]]