登录
首页 >  Golang >  Go问答

修正 Go 中 CSV 文件中缺少逗号导致的字段数量错误

来源:stackoverflow

时间:2024-03-05 14:27:23 486浏览 收藏

学习知识要善于思考,思考,再思考!今天golang学习网小编就给大家带来《修正 Go 中 CSV 文件中缺少逗号导致的字段数量错误》,以下内容主要包含等知识点,如果你正在学习或准备学习Golang,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!

问题内容

对于我的 csv 文件,每一行都有相同的列数,除了最后一行只有一列。因此,当我使用“foreach”读取文件数据以获取总行数时,我收到错误消息,它的字段数错误。如何在不删除最后一行的情况下修复此错误?代码和 csv 文件如下所示。

openfile, err := os.open(filepath)
checkerror("error in reading the file\n", err)

fmt.println("already open filepath :", filepath)

//read the data of file
filedata, err := csv.newreader(openfile).readall()
checkerror("error in reading the file\n", err)

leg := len(filedata)

fmt.println("total no of rows:", leg)

close := make([]string, leg)
date := make([]string, leg)
open := make([]string, leg)
high := make([]string, leg)
low := make([]string, leg)
adjustclose := make([]string, leg)
volume := make([]string, leg)

for e, value := range filedata {
    date[e] = value[0]
    open[e] = value[1]
    high[e] = value[2]
    low[e] = value[3]
    close[e] = value[4]
    adjustclose[e] = value[5]
    volume[e] = value[6]
}
2020-03-24,21,21,21,21,21,5
2020-04-06,20.8,20.8,20.8,20.8,20.8,19
2020-04-07,20.4,20.4,20.4,20.4,20.4,5
2020-04-09,20.4,20.4,20.4,20.4,20.4,10
292

解决方案


通过将 FieldsPerRecord 设置为负值来禁用 csv 读取器中的记录长度测试。

csvr := csv.newreader(openfile)
csvr.fieldsperrecord = -1
filedata, err := csvr.readall()

测试应用程序代码中的记录长度:

for e, value := range filedata {
    if len(value) < 7 {
        continue  // skip short records
    }
    ...
}

Run it on the playground

以上就是《修正 Go 中 CSV 文件中缺少逗号导致的字段数量错误》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>