尝试读取时 Csv 为空

标签 csv go

这是我的代码:

package main

import (
    "fmt"
    "os"
    "encoding/csv"
)




func main() {

    if len(os.Args) < 2 {
        fmt.Printf("Error: Source file name is required\n")
        fmt.Println("Usage:", os.Args[0], "<filename> \n")
        return
    }

    file, err := os.Open(os.Args[1])
    if err != nil {
        fmt.Println("Error:", err)
        return
    }
    // deferred call to Close() at the end of current method
    defer file.Close()
    //get a new cvsReader for reading file
    reader := csv.NewReader(file)
    //Configure reader options Ref http://golang.org/src/pkg/encoding/csv/reader.go?s=#L81
    reader.Comma = '|'
    reader.Comment = '#'        //Comment character
    reader.FieldsPerRecord = -1 //Number of records per record. Set to Negative value for variable
    reader.TrimLeadingSpace = true

    record, err := reader.Read()
    fmt.Println(record)
    result, _ := reader.ReadAll()
    fmt.Println(result)
    for i := range result {
        // Element count.
        fmt.Printf("Elements: %v", len(result[i]))
        fmt.Println()
        // Elements.
        fmt.Println(result[i])
    }

}

csv 是这样的:

<iframe src="http://www.testdata.com/embed/ph5721952ef0c4e" frameborder="0" height="481" width="608" scrolling="no"></iframe>|http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)14.jpg|http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)1.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)2.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)3.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)4.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)5.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)6.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)7.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)8.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)9.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)10.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)11.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)12.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)13.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)14.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)15.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)16.jpg| it's done|allhomedata;hardware;wf;couple;ITwjob;dsshot;small-tera;forceager;wf;tamed-cat;bg-wf-chicken;cowanimal;tracy-rod;tamed;ds-on-table|wf;dsshots;Hardware;force||976|51703|122|40
<iframe src="http://www.testdata.com/embed/ph5721952ef0c4e" frameborder="0" height="481" width="608" scrolling="no"></iframe>|http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)14.jpg|http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)1.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)2.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)3.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)4.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)5.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)6.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)7.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)8.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)9.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)10.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)11.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)12.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)13.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)14.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)15.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)16.jpg| it's done|allhomedata;hardware;wf;couple;ITwjob;dsshot;small-tera;forceager;wf;tamed-cat;bg-wf-chicken;cowanimal;tracy-rod;tamed;ds-on-table|wf;dsshots;Hardware;force||976|51703|122|40
<iframe src="http://www.testdata.com/embed/ph5721952ef0c4e" frameborder="0" height="481" width="608" scrolling="no"></iframe>|http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)14.jpg|http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)1.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)2.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)3.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)4.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)5.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)6.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)7.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)8.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)9.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)10.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)11.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)12.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)13.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)14.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)15.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)16.jpg| it's done|allhomedata;hardware;wf;couple;ITwjob;dsshot;small-tera;forceager;wf;tamed-cat;bg-wf-chicken;cowanimal;tracy-rod;tamed;ds-on-table|wf;dsshots;Hardware;force||976|51703|122|40
<iframe src="http://www.testdata.com/embed/ph5721952ef0c4e" frameborder="0" height="481" width="608" scrolling="no"></iframe>|http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)14.jpg|http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)1.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)2.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)3.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)4.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)5.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)6.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)7.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)8.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)9.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)10.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)11.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)12.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)13.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)14.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)15.jpg;http://i0.cdn2b.image.testdata.zhncdn.com/videos/201604/28/75158391/original/(m=eaf88daaaa)16.jpg| it's done|allhomedata;hardware;wf;couple;ITwjob;dsshot;small-tera;forceager;wf;tamed-cat;bg-wf-chicken;cowanimal;tracy-rod;tamed;ds-on-table|wf;dsshots;Hardware;force||976|51703|122|40

但是输出是这样的: [] []

我不明白为什么 [] 出现.... 如果有人知道为什么文件读取显示为空。

好像读取过程好像坏掉了。

感谢和问候

最佳答案

您的主要问题是您没有检查错误,至少在您没有检查的示例中。如果您检查从 reader.Read() 返回的错误,您会知道它是 ErrBareQuote , 为避免该错误,您必须设置 csv.Reader的 LazyQuotes 字段为真。这是您的代码的工作版本 https://play.golang.org/p/3y-T1DCsp6

关于尝试读取时 Csv 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42680728/

相关文章:

http - 如何使用 golang http 客户端在 url 中正确设置路径参数?

json - 嵌入式结构的多态 JSON 解码

google-app-engine - 批量查询分页?是否可以从数据存储中批量获取并获取游标?

r - 导入多个 csv 文件并为每个文件添加年份

csv - D3.js - 从 chrome 加载 csv 文件

csv - 什么是 "unescaped"TSV?使用它有什么好处?

csv - Azure 数据工厂 - CSV 中带引号的字符串在 SQL Server 接收器中不会被视为 NULL 值

python - 如何将 numpy.savetxt 与包含数组的结构化数组一起使用

go - 如何在 Golang 中将 []*Cookie 转换为 []Cookie

go - 如何在不使用 sync.WaitGroup 的情况下防止死锁?