RSS

haskell でCSVファイル

ほんとはcsv-conduitでやりたがったが挙動不審のため取り止め。1行目に1カラムしかないと2行目以降も1カラムしか読まないとかいまいちよくわからん動作をする。ヘッダ行だけ特別な取扱をするのかどうかとも思ったが解読できず。

かわりにtext.CSVを使った。

import Text.CSV

inFile = "z_in.csv"
outFile = "z_out.csv"

main = do 
  s <- parseCSVFromFile inFile
  putStrLn $ either show printCSV s
  putStrLn $ either (\x->"") (show . (map length)) s

parseCSVFromFileで IO(Either parseError CSV)が返ってくる。CSVはStringのリストのリストになっている。