Ruby:
Trabalhando com CSV
Como fazer:
Ruby inclui a biblioteca CSV por padrão, o que simplifica a leitura e escrita de arquivos CSV. Veja como você pode aproveitar isso para tarefas comuns:
Lendo um arquivo CSV
Para ler de um arquivo CSV, você primeiro precisa da biblioteca CSV. Então, você pode iterar sobre as linhas ou lê-las em um array.
require 'csv'
# Lendo cada linha como um array
CSV.foreach("data.csv") do |row|
puts row.inspect
end
# A saída para cada linha pode parecer assim: ["data1", "data2", "data3"]
Escrevendo em um CSV
Escrever em um arquivo CSV também é direto. Você pode adicionar a um arquivo existente ou criar um novo arquivo para escrever.
require 'csv'
CSV.open("output.csv", "wb") do |csv|
csv << ["header1", "header2", "header3"]
csv << ["value1", "value2", "value3"]
end
# Isso cria ou sobrescreve 'output.csv' com os cabeçalhos e valores especificados.
Analisando uma string CSV
Às vezes, você precisa analisar dados CSV diretamente de uma string. Veja como:
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
# Saída esperada:
# John Doe - 29 - New York
# Jane Doe - 31 - Chicago
Usando SmarterCSV
Para tarefas CSV mais complexas, o SmarterCSV
pode ser uma ferramenta valiosa. Primeiro, instale a gema:
gem install smarter_csv
Então, você pode usá-la para lidar com arquivos grandes ou realizar análises e manipulações mais sofisticadas:
require 'smarter_csv'
options = {}
data = SmarterCSV.process('large_data.csv', options)
data.each do |hash|
puts hash.inspect
end
# Isso lerá 'large_data.csv' e imprimirá cada linha como um hash baseado nos cabeçalhos.
Resumindo, a biblioteca CSV integrada do Ruby, juntamente com gemas de terceiros como SmarterCSV
, fornece suporte robusto para o manuseio de dados CSV, permitindo tarefas eficientes de processamento e manipulação de dados.