0Pricing
Ruby Academy · Lekcja

Praca z CSV

Biblioteka csv

Praca z CSV to bezpłatna lekcja Ruby Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Ruby Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Ruby Academy zawiera 4 lekcji w sumie.

Czym jest CSV

CSV (Comma-Separated Values) przechowuje dane tabelaryczne jako zwykły tekst: jeden wiersz w każdej linii, a pola są rozdzielone przecinkami. Standardowa biblioteka Ruby csv służy do jego odczytu i zapisu.

require 'csv'
row = CSV.parse_line('Alice,30,Engineer')
p row

Analizowanie ciągu CSV

CSV.parse przekształca wieloliniowy ciąg CSV w tablicę tablic reprezentujących wiersze.

require 'csv'
data = "name,age\nAlice,30\nBob,25"
rows = CSV.parse(data)
p rows

Używanie nagłówków

Należy przekazać headers: true, aby pierwszy wiersz stał się nazwami pól, a każdy kolejny wiersz działał jak Hash.

require 'csv'
data = "name,age\nAlice,30"
CSV.parse(data, headers: true).each do |row|
  puts(row['name'])
  puts(row['age'])
end

Iterowanie po wierszach

Po przeanalizowanych wierszach można przechodzić w pętli tak jak po dowolnej tablicy, uzyskując dostęp do pól za pomocą indeksu.

require 'csv'
rows = CSV.parse("1,a\n2,b\n3,c")
rows.each { |r| puts "#{r[0]} -> #{r[1]}" }

Konwertowanie typów

Należy użyć converters: :numeric, aby automatycznie konwertować pola liczbowe na obiekty Integer lub Float.

require 'csv'
rows = CSV.parse("10,20\n30,40", converters: :numeric)
puts(rows[0][0] + rows[1][1])

Generowanie CSV

CSV.generate tworzy ciąg CSV. Aby dodać wiersze, należy umieszczać tablice w bloku.

require 'csv'
out = CSV.generate do |csv|
  csv << ['name', 'age']
  csv << ['Alice', 30]
end
puts out

Cudzysłowy i znaki specjalne

CSV automatycznie ujmuje w cudzysłowy pola zawierające przecinki, cudzysłowy lub znaki nowej linii, dzięki czemu struktura pozostaje nienaruszona.

require 'csv'
out = CSV.generate do |csv|
  csv << ['note', 'Hello, world']
end
puts out

Niestandardowe separatory

W przypadku plików rozdzielanych tabulatorami lub średnikami należy ustawić col_sep. Obsługuje to format TSV i europejskie odmiany CSV.

require 'csv'
rows = CSV.parse("a;b;c", col_sep: ';')
p rows

Zapisywanie do pliku

CSV.open z trybem 'w' przesyła wiersze bezpośrednio do pliku.

require 'csv'
require 'tmpdir'
path = File.join(Dir.tmpdir, 'people.csv')
CSV.open(path, 'w') do |csv|
  csv << ['name', 'age']
  csv << ['Carol', 28]
end
puts(File.read(path))

Odczytywanie z pliku

CSV.read wczytuje cały plik do tablicy wierszy i przyjmuje te same opcje co parse.

require 'csv'
require 'tmpdir'
path = File.join(Dir.tmpdir, 'nums.csv')
File.write(path, "x,y\n1,2\n3,4")
rows = CSV.read(path, headers: true)
puts(rows.first['y'])

Sumowanie kolumny

Częste zadanie: odczytać kolumnę i obliczyć jej wartość zbiorczą. Należy połączyć nagłówki, konwersję liczbową i metodę map.

require 'csv'
data = "item,price\npen,3\nbook,12"
total = CSV.parse(data, headers: true, converters: :numeric).sum { |r| r['price'] }
puts(total)

Szybkie sprawdzenie

Jaka opcja umożliwia dostęp do pól CSV według nazwy kolumny, na przykład row['age']?

Podsumowanie: praca z CSV

Mogą Państwo obsługiwać dane tabelaryczne:

  • CSV.parse / CSV.read służą do odczytu
  • headers: true umożliwia korzystanie z nazwanych pól
  • converters: :numeric konwertuje wartości na odpowiednie typy
  • CSV.generate / CSV.open służą do zapisu
  • col_sep służy do obsługi TSV i innych separatorów
require 'csv'
p CSV.parse_line('a,b,c')

Często zadawane pytania

Czy lekcja „Praca z CSV” jest bezpłatna?

Tak — pełny tekst „Praca z CSV” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Ruby Academy, przejdź na CoddyKit PRO. Kurs Ruby Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Praca z CSV”?

Biblioteka csv Ćwiczysz Ruby Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Ruby Academy?

Nie wymagamy żadnego doświadczenia. Ruby Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Praca z CSV”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Ruby Academy?

Tak. Każda lekcja Ruby Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Odczytywanie i zapisywanie JSON
  2. Praca z CSV
  3. Konfiguracja YAML
  4. Wybór formatu
← Powrót do Ruby Academy