Haskell:
CSVとの作業
方法
Haskellでは、cassavaライブラリを使用してCSVファイルを扱うことができます。これは、この目的のための人気のあるサードパーティ製ライブラリの一つです。以下は、cassavaを使用してCSVファイルから読み込みと書き込みを行う例です。
1. CSVファイルの読み込み:
まず、プロジェクトのcabalファイルに追加するか、Stackを使用してcassavaがインストールされていることを確認します。
ここに、CSVファイルを読み込んで各レコードを出力する簡単な例を示します。CSVファイルにはnameとageの2つの列があると仮定します。
{-# 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 ++ " is " ++ show (age :: Int) ++ " years old."people.csvに以下が含まれていると仮定します:
John,30
Jane,25出力は以下になります:
John is 30 years old.
Jane is 25 years old.2. CSVファイルの書き込み:
CSVファイルを作成するには、cassavaからencode関数を使用できます。
ここでは、レコードのリストを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このcassavaライブラリを使用してHaskellでCSVファイルを扱うための簡潔な紹介は、CSVファイルからの読み取りと書き込みの両方を示しており、言語に慣れていない人にとってもデータ操作タスクをよりアプローチ可能にしています。