Ruby:
Trabajando con CSV
Cómo hacerlo:
Ruby incluye por defecto la biblioteca CSV, la cual simplifica la lectura y escritura de archivos CSV. Aquí te mostramos cómo puedes aprovechar esto para tareas comunes:
Leer un archivo CSV
Para leer de un archivo CSV, primero requieres la biblioteca CSV. Luego, puedes iterar sobre las filas o leerlas en un arreglo.
require 'csv'
# Leyendo cada fila como un arreglo
CSV.foreach("data.csv") do |row|
puts row.inspect
end
# La salida para cada fila podría verse así: ["data1", "data2", "data3"]
Escribir en un CSV
Escribir en un archivo CSV también es sencillo. Puedes añadir a un archivo existente o crear un nuevo archivo para escribir.
require 'csv'
CSV.open("output.csv", "wb") do |csv|
csv << ["encabezado1", "encabezado2", "encabezado3"]
csv << ["valor1", "valor2", "valor3"]
end
# Esto crea o sobrescribe 'output.csv' con los encabezados y valores especificados.
Analizar una cadena CSV
A veces necesitas analizar datos CSV directamente de una cadena. Así es cómo:
require 'csv'
data = "nombre,edad,ciudad\nJohn Doe,29,Nueva York\nJane Doe,31,Chicago"
csv = CSV.parse(data, headers: true)
csv.each do |row|
puts "#{row['nombre']} - #{row['edad']} - #{row['ciudad']}"
end
# Salida esperada:
# John Doe - 29 - Nueva York
# Jane Doe - 31 - Chicago
Usando SmarterCSV
Para tareas CSV más complejas, la gema SmarterCSV
puede ser una herramienta valiosa. Primero, instala la gema:
gem install smarter_csv
Luego, puedes usarla para tratar con archivos grandes o realizar análisis y manipulación más sofisticados:
require 'smarter_csv'
options = {}
data = SmarterCSV.process('large_data.csv', options)
data.each do |hash|
puts hash.inspect
end
# Esto leerá 'large_data.csv' y mostrará cada fila como un hash basado en los encabezados.
En resumen, la biblioteca CSV integrada en Ruby, junto con gemas de terceros como SmarterCSV
, proporciona un soporte robusto para manejar datos CSV, permitiendo tareas eficientes de procesamiento y manipulación de datos.