Ruby:
Arbeta med CSV
Hur man gör:
Ruby inkluderar CSV-biblioteket som standard, vilket förenklar läsning från och skrivning till CSV-filer. Så här kan du utnyttja detta för vanliga uppgifter:
Läsa en CSV-fil
För att läsa från en CSV-fil, behöver du först inkludera CSV-biblioteket. Därefter kan du iterera över rader eller läsa in dem i en array.
require 'csv'
# Läsa varje rad som en array
CSV.foreach("data.csv") do |row|
puts row.inspect
end
# Utskriften för varje rad kan se ut så här: ["data1", "data2", "data3"]
Skriva till en CSV
Att skriva till en CSV-fil är också rakt på sak. Du kan lägga till i en befintlig fil eller skapa en ny fil för att skriva.
require 'csv'
CSV.open("output.csv", "wb") do |csv|
csv << ["header1", "header2", "header3"]
csv << ["value1", "value2", "value3"]
end
# Detta skapar eller skriver över 'output.csv' med de angivna rubrikerna och värdena.
Tolkning av en CSV-sträng
Ibland behöver du tolka CSV-data direkt från en sträng. Så här gör du:
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
# Förväntad utskrift:
# John Doe - 29 - New York
# Jane Doe - 31 - Chicago
Använda SmarterCSV
För mer komplexa CSV-uppgifter kan SmarterCSV
-paketet vara ett värdefullt verktyg. Först, installera paketet:
gem install smarter_csv
Därefter kan du använda det för att hantera stora filer eller utföra mer avancerad tolkning och manipulation:
require 'smarter_csv'
options = {}
data = SmarterCSV.process('large_data.csv', options)
data.each do |hash|
puts hash.inspect
end
# Detta läser 'large_data.csv' och skriver ut varje rad som en hash baserad på rubrikerna.
Sammanfattningsvis erbjuder Rubys inbyggda CSV-bibliotek, tillsammans med tredjeparts-paket som SmarterCSV
, robust stöd för hantering av CSV-data, vilket möjliggör effektiva uppgifter för databearbetning och manipulation.