F#fsx中的命令行参数

时间:2016-06-23 16:13:50

标签: f#

我运行我的.fsx文件,如

>fsi A.fsx

在这个文件中,我用CsvProvider读取了csv,它必须有csv数据的路径。

type Data = CsvProvider<"my_data.txt", ";", Schema

我需要将文件名作为命令行参数传递,这是可能的

 >fsi A.fsx my_data.txt

我可以像

一样阅读
let originalPath = fsi.CommandLineArgs.ElementAt(1)

问题是,CsvProvider构造函数中使用的文件名需要是常量,而命令行参数不是。如何从命令行参数初始化CsvProvider?

1 个答案:

答案 0 :(得分:6)

角括号<"my_data.txt"...>内的值指定示例格式文件,并在编译时进行检查,因此需要将其作为常量字符串。假设您的.fsx脚本只想加载相同通用格式的其他CSV文件,您可以使用

let contents = Data.Load(originalPath)