Rails Insights

Парсинг CSV файлів у Ruby

CSV (Comma-Separated Values) — це популярний формат для зберігання табличних даних. Він широко використовується для обміну даними між різними програмами, такими як електронні таблиці, бази даних та веб-додатки. У цій статті ми розглянемо, як парсити CSV файли за допомогою мови програмування Ruby. Ми будемо використовувати вбудовану бібліотеку Ruby для роботи з CSV, що робить цей процес простим і зрозумілим.

Що таке CSV?

CSV — це текстовий формат, у якому дані розділені комами. Кожен рядок у файлі представляє собою запис, а кожен запис складається з полів, розділених комами. Наприклад:

ім'я,вік,місто
Олег,30,Київ
Марія,25,Львів
Іван,35,Одеса

У цьому прикладі перший рядок є заголовком, а наступні рядки — даними. CSV файли легко читати і писати, що робить їх ідеальними для обміну даними.

Встановлення Ruby

Перед тим, як почати, переконайтеся, що у вас встановлений Ruby. Ви можете перевірити це, виконавши команду:

ruby -v

Якщо Ruby не встановлений, ви можете завантажити його з офіційного сайту ruby-lang.org або скористатися менеджером версій, таким як RVM або rbenv.

Основи роботи з CSV у Ruby

Ruby має вбудовану бібліотеку для роботи з CSV, яка дозволяє легко читати та записувати CSV файли. Щоб почати, вам потрібно підключити цю бібліотеку у вашому коді:

require 'csv'

Читання CSV файлів

Читання CSV файлів у Ruby дуже просте. Ось приклад, як це зробити:

require 'csv'

CSV.foreach('data.csv', headers: true) do |row|
  puts "Ім'я: #{row['ім'я']}, Вік: #{row['вік']}, Місто: #{row['місто']}"
end

У цьому прикладі ми використовуємо метод CSV.foreach, щоб пройтися по кожному рядку файлу data.csv. Параметр headers: true вказує, що перший рядок файлу містить заголовки.

Зчитування CSV у масив

Якщо ви хочете зчитати CSV файл у масив, ви можете використовувати метод CSV.read:

require 'csv'

data = CSV.read('data.csv', headers: true)
data.each do |row|
  puts "Ім'я: #{row['ім'я']}, Вік: #{row['вік']}, Місто: #{row['місто']}"
end

Цей код зчитує весь файл у масив, а потім проходить по кожному рядку, виводячи дані на екран.

Запис CSV файлів

Запис CSV файлів у Ruby також є простим процесом. Ось приклад, як створити новий CSV файл:

require 'csv'

CSV.open('output.csv', 'w') do |csv|
  csv << ['ім'я', 'вік', 'місто']
  csv << ['Олег', 30, 'Київ']
  csv << ['Марія', 25, 'Львів']
  csv << ['Іван', 35, 'Одеса']
end

У цьому прикладі ми використовуємо метод CSV.open для створення нового файлу output.csv. Перший рядок містить заголовки, а наступні рядки — дані.

Обробка помилок

При роботі з CSV файлами важливо обробляти можливі помилки. Наприклад, файл може бути відсутнім або містити некоректні дані. Ось як ви можете обробити помилки при читанні CSV файлу:

require 'csv'

begin
  CSV.foreach('data.csv', headers: true) do |row|
    puts "Ім'я: #{row['ім'я']}, Вік: #{row['вік']}, Місто: #{row['місто']}"
  end
rescue Errno::ENOENT
  puts "Файл не знайдено!"
rescue CSV::MalformedCSVError
  puts "Некоректний формат CSV!"
end

У цьому прикладі ми використовуємо блок begin-rescue для обробки помилок. Якщо файл не знайдено, виводиться повідомлення про помилку. Якщо формат CSV некоректний, також виводиться відповідне повідомлення.

Фільтрація даних

Іноді вам потрібно фільтрувати дані, які ви зчитуєте з CSV файлу. Ось приклад, як це зробити:

require 'csv'

CSV.foreach('data.csv', headers: true) do |row|
  if row['вік'].to_i > 30
    puts "Ім'я: #{row['ім'я']}, Вік: #{row['вік']}, Місто: #{row['місто']}"
  end
end

У цьому прикладі ми перевіряємо, чи вік особи більше 30 років, і якщо так, виводимо її дані.

Висновок

Парсинг CSV файлів у Ruby — це простий і зручний процес, завдяки вбудованій бібліотеці CSV. Ви можете легко читати, записувати та обробляти дані, що робить Ruby відмінним вибором для роботи з табличними даними. Сподіваємося, що ця стаття допомогла вам зрозуміти основи роботи з CSV файлами у Ruby. Тепер ви готові до нових викликів у програмуванні!

Published: August 12, 2024

© 2024 RailsInsights. All rights reserved.