使用Haskell海龟';使用readFile创建文件路径

使用Haskell海龟';使用readFile创建文件路径,haskell,haskell-turtle,Haskell,Haskell Turtle,我正试图使用Haskell Turtle来处理CSV文件,但在使用选项解析器中的Turtle.FilePath时遇到了问题。 这里有一个例子: {-# LANGUAGE OverloadedStrings #-} module Main where import Lib import Control.Applicative import qualified Data.ByteString.Lazy as BL import Turtle data Args = Args Turtle.Fi

我正试图使用Haskell Turtle来处理CSV文件,但在使用选项解析器中的
Turtle.FilePath
时遇到了问题。 这里有一个例子:

{-# LANGUAGE OverloadedStrings #-}
module Main where

import Lib

import Control.Applicative
import qualified Data.ByteString.Lazy as BL
import Turtle

data Args = Args Turtle.FilePath
  deriving Show

tfpToStr :: Turtle.FilePath -> String
tfpToStr fpath = show fpath

tfpToPfp :: Turtle.FilePath -> Prelude.FilePath
tfpToPfp fpath = show fpath

parser :: Parser Args
parser = Args <$> (argPath "fname" "The file containing the data")

sname :: String
sname = "salaries.csv"

main :: IO ()
main = do
    Args fname <- options "Salary Printer" parser
    csvData <- BL.readFile (tfpToStr fname)
    -- csvData <- BL.readFile sname
    putStrLn $ show csvData
{-#语言重载字符串}
模块主要在哪里
导入库
导入控制
将限定数据.ByteString.Lazy导入为BL
进口海龟
数据Args=Args.FilePath
衍生节目
tfpToStr::Turtle.FilePath->String
tfpToStr fpath=显示fpath
tfpToPfp::Turtle.FilePath->Prelude.FilePath
tfpToPfp fpath=显示fpath
parser::parser Args
parser=Args(argPath“fname”“包含数据的文件”)
sname::字符串
sname=“salaries.csv”
main::IO()
main=do

Args fname我碰巧发现了一些有用的东西

现在我可以打电话了

csvData <- BL.readFile $ filePathToString fname

csvData我碰巧发现了一些有用的东西

现在我可以打电话了

csvData <- BL.readFile $ filePathToString fname

csvData也可以在不直接使用系统文件路径的情况下执行转换:

import qualified Data.Text as T

filePathToString :: FilePath -> String
filePathToString = T.unpack . format fp

也可以在不直接使用系统文件路径的情况下执行转换:

import qualified Data.Text as T

filePathToString :: FilePath -> String
filePathToString = T.unpack . format fp