Haskell:
处理CSV文件

如何操作:

在Haskell中,可以使用cassava库来处理CSV文件,这是用于此目的的流行的第三方库之一。以下是使用cassava读取和写入CSV文件的示例。

1. 读取CSV文件:

首先,确保通过将其添加到项目的cabal文件或使用Stack来安装cassava

这里有一个简单的示例,用于读取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 ++ " 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文件,你可以使用cassavaencode函数。

以下是如何将记录列表写入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文件,使得数据操作任务对于那些对该语言不熟悉的人更加易于接近。