在目录F#上使用CSV类型提供程序

时间:2015-07-27 16:30:54

标签: file parsing csv f# directory

我想使用CSV类型提供程序按顺序存储目录中每个文件中列的总和。我正在使用以下代码,但是当我打印序列时它给了我不正确的值。当我将其写入只读一个文件时,它提供正确的值。当我尝试在目录中的所有文件上运行它时,我不知道发生了什么。

let dir = new DirectoryInfo("..\adr-financials\adr-sales")
type SalesReport = CsvProvider<"..\adr-financials\adr-sales\sales.txt", Separators="\t", IgnoreErrors=true>
let sales = 
    [for file in dir.GetFiles() do
        let salesReport = SalesReport.Load(file.FullName)
        let totalSales =
            salesReport.Rows
            |> Seq.map (fun row -> row.``Extended Partner Share``)
            |> Seq.filter (fun elem -> not (Double.IsNaN (float(elem))))
            |> Seq.sum
        yield totalSales]
for sale in sales do
    printfn "%f" sale

我也尝试在for循环中定义Csv Provider的地方编写它,但这给了我一个错误“表达式中此点或之前的不完整的结构化构造”

0 个答案:

没有答案