Haskell:
Työskentely CSV:n kanssa
Miten:
Haskellissa CSV-tiedostojen käsittelyn voi saavuttaa käyttämällä cassava
-kirjastoa, joka on yksi suosituimmista kolmannen osapuolen kirjastoista tähän tarkoitukseen. Alla on esimerkkejä, jotka esittelevät, kuinka lukea ja kirjoittaa CSV-tiedostoihin käyttäen cassava
a.
1. CSV-tiedoston lukeminen:
Varmista ensin, että sinulla on cassava
asennettuna lisäämällä se projektisi cabal-tiedostoon tai käyttämällä Stackia.
Tässä on yksinkertainen esimerkki CSV-tiedoston lukemiseen ja jokaisen tietueen tulostamiseen. Oletamme, että CSV-tiedostossa on kaksi saraketta: nimi ja ikä.
{-# 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 ++ " on " ++ show (age :: Int) ++ " vuotta vanha."
Olettaen että people.csv
sisältää:
John,30
Jane,25
Tuloste on:
John on 30 vuotta vanha.
Jane on 25 vuotta vanha.
2. CSV-tiedoston kirjoittaminen:
CSV-tiedoston luomiseksi voit käyttää encode
-funktiota cassava
sta.
Tässä on, kuinka voisit kirjoittaa listan tietueita CSV-tiedostoon:
{-# LANGUAGE OverloadedStrings #-}
import Data.Csv
import qualified Data.ByteString.Lazy as BL
main :: IO ()
main = BL.writeFile "output.csv" $ encode [("John", 30), ("Jane", 25)]
Tämän ohjelman suorittamisen jälkeen output.csv
sisältää:
John,30
Jane,25
Tämä tiivis johdatus CSV-tiedostojen käsittelyyn Haskellissa käyttäen cassava
-kirjastoa esittelee, kuinka lukea ja kirjoittaa CSV-tiedostoihin, tehden datan käsittelytehtävistä helpommin lähestyttäviä niille, jotka ovat uusia kielessä.