繁体   English   中英

F#如何写入/读取CSV文件

[英]F# How to Write/Read to a CSV File

我正在使用F#进行作业,必须在其中将特定学生及其信息添加到大的Student.txt文件中

Student.txt文件包含其姓氏,名字,中间字母,电话号码,电子邮件及其gpa

Students.txt文件的摘要

如果我尝试添加此信息,然后从文件中读取:

type Phone = 

type Email = 

type StudentInfo =
    { firstName : string;
      middleInitial : char option;
      lastName : string;
      phone : Phone;
      email : Email option;
      gpa : float }

let addPhone input = 

let addEmail input =

let readStudentsFromCSV filename = 

let students = readStudentsFromCSV "Students.txt"

我需要了解如何编写这些功能。 注意:这只是我的代码的一部分。

有很多选择。 主要问题是您是否要编写自己的CSV解析,还是要使用现有的库。

如果这是一项任务,则可能需要您编写自己的解析器(这样做在现实世界中可能不是一个好主意,因为现实世界中的CSV文件可能非常混乱,但是如果您的输入非常常规,则可能会很好)。 如果你使用的库时, F#数据库是大多数人在F#社区会用什么。

  • F#Data带有一个称为CsvProvider的类型提供程序,该提供程序可以为CsvProvider推断CSV文件中的行类型,因此您不必编写显式的类型定义。 (或者,您仍然可以这样做,但是可以使用简单的转换将数据加载到结构中。)

  • F#Data也具有CsvFile类型,该类型仅进行解析,但随后将数据作为一系列行返回(它们本身是字符串值的数组)。 如果您只需要一些东西来分割线,而又想完成其余的工作,那可能会很好。

  • 如果你想写CSV解析你自己,你可以使用File.ReadAllLines阅读各行,然后row.Split(',')把每行插入使用字符串数组,作为分隔符。 这可能对您的文件有效-但如果文件中有任何转义符(例如Foo, "a, b", Bar仅三列),它将中断。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM