Haskell:
עובדים עם CSV
איך לעשות:
בהסקל, טיפול בקבצי CSV ניתן להשגה באמצעות הספרייה cassava
, אחת מהספריות הצד שלישי הפופולריות למטרה זו. להלן דוגמאות המדגימות איך לקרוא מקובץ CSV וכיצד לכתוב אליו באמצעות cassava
.
1. קריאת קובץ CSV:
ראשית, וודאו ש-cassava
מותקן על ידי הוספתו לקובץ ה-cabal של הפרויקט או שימוש ב-Stack.
להלן דוגמה פשוטה לקרוא קובץ CSV ולהדפיס כל רשומה. אנו מניחים כי בקובץ ה-CSV יש שני עמודות: שם וגיל.
{-# 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 ++ " בן " ++ show (age :: Int) ++ " שנים."
בהנחה ש-people.csv
מכיל:
John,30
Jane,25
הפלט יהיה:
John בן 30 שנים.
Jane בת 25 שנים.
2. כתיבת קובץ CSV:
ליצירת קובץ CSV, ניתן להשתמש בפונקציה encode
מ-cassava
.
הנה איך תוכלו לכתוב רשימת רשומות לקובץ 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)]
לאחר הרצת התוכנית הזו, output.csv
יכיל:
John,30
Jane,25
הקדמה מקוצרת זו לעבודה עם קבצי CSV בהסקל באמצעות הספרייה cassava
מדגימה כיצד לקרוא מקבצי CSV ולכתוב אליהם, מה שהופך משימות של מניפולציה של נתונים לנגישות יותר למי שחדש לשפה.