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 - ChicagoUsando SmarterCSV
Para tareas CSV más complejas, la gema SmarterCSV puede ser una herramienta valiosa. Primero, instala la gema:
gem install smarter_csvLuego, 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.