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, дозволяючи ефективно виконувати завдання з обробки та маніпуляції даними.