Haskell:
Travailler avec CSV

Comment faire :

En Haskell, la gestion des fichiers CSV peut être réalisée en utilisant la bibliothèque cassava, l’une des bibliothèques tierces populaires à cette fin. Ci-dessous, des exemples illustrant comment lire et écrire dans des fichiers CSV en utilisant cassava.

1. Lire un fichier CSV :

Tout d’abord, assurez-vous d’avoir cassava installé en l’ajoutant au fichier cabal de votre projet ou en utilisant Stack.

Voici un exemple simple pour lire un fichier CSV et imprimer chaque enregistrement. Nous supposons que le fichier CSV a deux colonnes : nom et âge.

{-# 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 ++ " a " ++ show (age :: Int) ++ " ans."

En supposant que people.csv contient :

John,30
Jane,25

Le résultat sera :

John a 30 ans.
Jane a 25 ans.

2. Écrire un fichier CSV :

Pour créer un fichier CSV, vous pouvez utiliser la fonction encode de cassava.

Voici comment vous pourriez écrire une liste d’enregistrements dans un fichier 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)]

Après l’exécution de ce programme, output.csv contiendra :

John,30
Jane,25

Cette introduction concise au travail avec des fichiers CSV en Haskell en utilisant la bibliothèque cassava démontre comment lire et écrire dans des fichiers CSV, rendant les tâches de manipulation de données plus accessibles pour ceux qui sont nouveaux dans le langage.