Ruby:
Arbeide med CSV
Hvordan:
Ruby inkluderer CSV-biblioteket som standard, noe som forenkler lesing fra og skriving til CSV-filer. Her er hvordan du kan utnytte dette for vanlige oppgaver:
Lese en CSV-fil
For å lese fra en CSV-fil, krever du først CSV-biblioteket. Deretter kan du iterere over rader eller lese dem inn i en matrise.
require 'csv'
# Lese hver rad som en matrise
CSV.foreach("data.csv") do |rad|
puts rad.inspect
end
# Utdata for hver rad kan se slik ut: ["data1", "data2", "data3"]
Skrive til en CSV
Å skrive til en CSV-fil er også greit. Du kan legge til i en eksisterende fil eller opprette en ny fil for å skrive.
require 'csv'
CSV.open("output.csv", "wb") do |csv|
csv << ["header1", "header2", "header3"]
csv << ["verdi1", "verdi2", "verdi3"]
end
# Dette oppretter eller overskriver 'output.csv' med de spesifiserte hodene og verdiene.
Parse en CSV-streng
Noen ganger trenger du å parse CSV-data direkte fra en streng. Her er hvordan:
require 'csv'
data = "navn,alder,by\nJohn Doe,29,New York\nJane Doe,31,Chicago"
csv = CSV.parse(data, med: true)
csv.each do |rad|
puts "#{rad['navn']} - #{rad['alder']} - #{rad['by']}"
end
# Forventet utdata:
# John Doe - 29 - New York
# Jane Doe - 31 - Chicago
Bruke SmarterCSV
For mer komplekse CSV-oppgaver, kan SmarterCSV
-juvelen være et verdifullt verktøy. Først, installer juvelen:
gem install smarter_csv
Deretter kan du bruke den til å håndtere store filer eller utføre mer sofistikerte parsing og manipulasjon:
require 'smarter_csv'
alternativer = {}
data = SmarterCSV.process('large_data.csv', alternativer)
data.each do |hash|
puts hash.inspect
end
# Dette vil lese 'large_data.csv' og utgi hver rad som en hash basert på hodene.
Oppsummert gir Rubys innebygde CSV-bibliotek, sammen med tredjepartsjuveler som SmarterCSV
, robust støtte for håndtering av CSV-data, noe som muliggjør effektive dataprosesserings- og manipuleringsoppgaver.