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 cassavaa.

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 cassavasta.

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ä.