Ruby:
Робота з CSV

Як це зробити:

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

Читання з файлу CSV

Для читання з файлу CSV спочатку вам потрібна бібліотека CSV. Потім ви можете ітерувати по рядках або читати їх у масив.

require 'csv'

# Читання кожного рядка як масиву
CSV.foreach("data.csv") do |row|
  puts row.inspect
end

# Вивід для кожного рядка може виглядати так: ["data1", "data2", "data3"]

Запис в CSV

Запис в файл CSV також є прямолінійним. Ви можете додавати дані до існуючого файлу або створювати новий файл для запису.

require 'csv'

CSV.open("output.csv", "wb") do |csv|
  csv << ["header1", "header2", "header3"]
  csv << ["value1", "value2", "value3"]
end

# Це створює або перезаписує 'output.csv' з заданими заголовками та значеннями.

Парсинг рядка CSV

Іноді вам потрібно парсити дані CSV безпосередньо з рядка. Ось як:

require 'csv'

data = "name,age,city\nJohn Doe,29,New York\nJane Doe,31,Chicago"
csv = CSV.parse(data, headers: true)

csv.each do |row|
  puts "#{row['name']} - #{row['age']} - #{row['city']}"
end

# Очікуваний вивід:
# John Doe - 29 - Нью-Йорк
# Jane Doe - 31 - Чикаго

Використання SmarterCSV

Для складніших завдань з CSV можна використовувати гем SmarterCSV. Спочатку встановіть гем:

gem install smarter_csv

Потім ви можете використовувати його для роботи з великими файлами або для більш складного парсингу та маніпуляції:

require 'smarter_csv'

options = {}
data = SmarterCSV.process('large_data.csv', options)

data.each do |hash|
  puts hash.inspect
end

# Це прочитає 'large_data.csv' і виведе кожен рядок як хеш на основі заголовків.

Підсумовуючи, вбудована бібліотека CSV в Ruby разом із сторонніми гемами, як-от SmarterCSV, забезпечує міцну підтримку для обробки даних CSV, дозволяючи ефективно виконувати завдання з обробки та маніпуляції даними.