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文件,你可以使用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文件,使得数据操作任务对于那些对该语言不熟悉的人更加易于接近。