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 ולכתוב אליהם, מה שהופך משימות של מניפולציה של נתונים לנגישות יותר למי שחדש לשפה.