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.