Closed. This question needs
details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息,并通过
editing this post阐明问题。
在10个月前关闭。
Improve this question
对于我的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。