golang 读写csv

golang 读写csv

golang 读写csv

在实际的开发工作中,我们经常会遇到需要读取、写入csv文件的情况。CSV(Comma-Separated Values)是一种常见的数据格式,它用逗号将不同字段的值分隔开来。在Go语言中,我们可以使用标准库encoding/csv来实现csv文件的读写操作。

读取CSV文件

读取CSV文件的步骤如下:
1. 打开csv文件
2. 创建一个Reader对象
3. 读取csv文件中的数据

下面是一个简单的示例代码,演示如何读取名为data.csv的csv文件中的数据,并将其打印出来。

package main

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

func main() {
    // 打开csv文件
    file, err := os.Open("data.csv")
    if err != nil {
        fmt.Println("Error:", err)
        return
    }
    defer file.Close()

    // 创建一个Reader对象
    reader := csv.NewReader(file)

    // 读取csv文件中的数据
    records, err := reader.ReadAll()
    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    // 打印csv文件中的数据
    for _, record := range records {
        for _, value := range record {
            fmt.Printf("%s\t", value)
        }
        fmt.Println()
    }
}

假设data.csv文件内容如下:

Tom,22,New York
Jack,25,San Francisco
Alice,28,Los Angeles

运行上述示例代码后,输出如下:

Tom    22    New York
Jack    25    San Francisco
Alice    28    Los Angeles

写入CSV文件

写入CSV文件的步骤如下:
1. 创建一个Writer对象
2. 写入数据到csv文件
3. 关闭csv文件

下面是一个简单的示例代码,演示如何将一组数据写入到名为output.csv的csv文件中。

package main

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

func main() {
    // 创建一个Writer对象
    file, err := os.Create("output.csv")
    if err != nil {
        fmt.Println("Error:", err)
        return
    }
    defer file.Close()

    writer := csv.NewWriter(file)

    // 写入数据到csv文件
    data := [][]string{
        {"Name", "Age", "City"},
        {"Tom", "22", "New York"},
        {"Jack", "25", "San Francisco"},
        {"Alice", "28", "Los Angeles"},
    }

    for _, record := range data {
        err := writer.Write(record)
        if err != nil {
            fmt.Println("Error:", err)
            return
        }
    }

    writer.Flush()

    if err := writer.Error(); err != nil {
        fmt.Println("Error:", err)
        return
    }
}

运行上述示例代码后,程序会将数据写入到output.csv文件中。可以打开output.csv文件查看写入的数据。

通过以上示例代码,我们可以看到在Go语言中使用encoding/csv标准库可以很方便地实现csv文件的读写操作。在实际应用中,我们可以根据具体需求对读取和写入csv文件进行更复杂的处理和操作。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程