Haskell:
Praca z plikami CSV
Jak to zrobić:
W Haskellu obsługę plików CSV można osiągnąć za pomocą biblioteki cassava
, jednej z popularnych bibliotek stron trzecich do tego celu. Poniżej przedstawiono przykłady pokazujące, jak czytać z plików CSV oraz jak do nich pisać, używając cassava
.
1. Odczytywanie pliku CSV:
Najpierw upewnij się, że masz zainstalowaną cassava
, dodając ją do pliku cabal Twojego projektu lub używając Stack.
Oto prosty przykład czytania pliku CSV i wyświetlania każdego rekordu. Zakładamy, że plik CSV ma dwie kolumny: nazwa i wiek.
{-# LANGUAGE OverloadedStrings #-}
import Data.Csv
import qualified Data.ByteString.Lazy as BL
import qualified Data.Vector as V
main :: IO ()
main = do
csvData <- BL.readFile "people.csv"
case decode NoHeader csvData of
Left err -> putStrLn err
Right v -> V.forM_ v $ \(name, age) ->
putStrLn $ name ++ " ma " ++ show (age :: Int) ++ " lat."
Zakładając, że people.csv
zawiera:
John,30
Jane,25
Wynik będzie:
John ma 30 lat.
Jane ma 25 lat.
2. Tworzenie pliku CSV:
Aby stworzyć plik CSV, możesz użyć funkcji encode
z cassava
.
Oto jak możesz zapisać listę rekordów do pliku CSV:
{-# LANGUAGE OverloadedStrings #-}
import Data.Csv
import qualified Data.ByteString.Lazy as BL
main :: IO ()
main = BL.writeFile "output.csv" $ encode [("John", 30), ("Jane", 25)]
Po uruchomieniu tego programu, output.csv
będzie zawierać:
John,30
Jane,25
To zwięzłe wprowadzenie do pracy z plikami CSV w Haskellu, używając biblioteki cassava
, demonstruje, jak czytać z plików CSV oraz jak do nich pisać, co czyni zadania manipulacji danymi bardziej przystępnymi dla osób nowych w języku.