F#可选CSV加载

时间:2015-04-16 15:22:47

标签: f# f#-data

我使用F#数据提供程序加载csv文件。出于某种原因,不在我的控制之下,他们偶尔会将文件更改为gzip。 (例如MyFile.txt也可以是MyFile.text.gz)

所以,我有这个,它工作得很好

let fl = CSV.load("MyFile.txt")

我需要做的是如果找不到文件的错误,我需要它来查找备用名称。

let fl = CSV.load("MyFile.txt.gz")

我尝试了一下......用块

try
        let fl = CSV.load("MyFile.txt")
with
        let fl = CSV.load("MyFile.txt.gz")

它不允许我以这种方式使用let关键字。我甚至试过

try
        let fl = CSV.load("MyFile.txt")
with
        CSV.load("MyFile.txt.gz") -> fl

使用C#,这将非常简单。提前感谢您的任何帮助。

1 个答案:

答案 0 :(得分:4)

您可以使用以下内容:

let fl =
    try CSV.load("MyFile.txt")
    with _ -> CSV.load("MyFile.txt.gz")

但我相信更好的解决方案是先检查文件是否存在。