golang使用encoding csv对csv文件进行读取和写入


1. 读取csv文件

package main

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


func main(){
    f, err := os.Open("data.csv")
    if err != nil{
        fmt.Println("Error: ", err)
        return 
    }

    reader := csv.NewReader(f)

    // 可以一次性读完
    result, err := reader.ReadAll()
    if err != nil{
        fmt.Println("Error: ", err)
        return 
    }
    fmt.Println(result)

    // 也可以一行一行进行读取
    // 但是注意不要两种方式都使用
    // 运行本代码第二种方式有可能没有数据,因为读指针已经指到了最后
    for {
        line, err := reader.Read()
        if err == io.EOF{
            break
        } else if err != nil{
            fmt.Println("Error: ", err)
            return 
        }
        fmt.Println(line)
    }

}

写入csv文件

package main

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


func main(){
    f, err := os.OpenFile("data.csv", os.O_RDWR, 0666)
    if err != nil{
        fmt.Println("Error: ", err)
        return 
    }

    writer := csv.NewWriter(f)
    var header = []string{"id", "name", "age"}
    writer.Write(header)
    var data =  []string{"3", "John", "23"}
    writer.Write(data)

    // 也可以一次性写入多条
    var d = [][]string{{"1","Edgar", "20"}, {"2","Tom","18"}}
    writer.WriteAll(d)

    // 将缓存中的内容写入到文件里    
    writer.Flush()

    if err = writer.Error(); err != nil{
        fmt.Println(err)
    }
}

golang使用encoding csv对csv文件进行读取和写入介绍到这里,更多go学习请参考编程字典go教程 和问答部分,谢谢大家对编程字典的支持。


原文链接:https://blog.csdn.net/weixin_44676081/article/details/108029175