Sir*_* DK 2 haskell list text-parsing
嗨,大家好,
我正在解析一个看起来像这样的文本文件:
114.474998474121 15.7440004348755 25.806999206543 -873 172 182 188
114.46199798584 15.7419996261597 25.8799991607666 -1396 180 192 205
Run Code Online (Sandbox Code Playgroud)
并希望它可以这样读:
[[114.475,15.744,25.807,-873.0,172.0,182.0,188.0],
[114.462,15.742,25.88,-1396.0,180.0,192.0,205.0]]
Run Code Online (Sandbox Code Playgroud)
目前我的文本解析代码没有给出.这是我的代码:
main = do
text <- readFile "mytext.txt"
let
pcVal = map read (words text) :: [Float]
print pcVal
return ()
Run Code Online (Sandbox Code Playgroud)
此代码将所有文本解析为单个列表,如下所示:
[114.475,15.744,25.807,-873.0,172.0,182.0,188.0,
114.462,15.742,25.88,-1396.0,180.0,192.0,205.0]
Run Code Online (Sandbox Code Playgroud)
我找不到如何将整行(在文本文件中)作为列表,并将第二行作为另一个列表直到文件末尾.感谢有人有这方面的经验.谢谢.
你可以使用这个lines功能; 例如map words $ lines text.
这也是帮助函数的好时机,即
let parse :: String -> [Float]
parse line = map read $ words line
pcVal = map parse $ lines text
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |