Go语言实战案例-读取CSV文件并打印

🎯 案例目标

掌握如何使用 Go 语言读取 CSV 文件,并将内容逐行打印到终端。

CSV(Comma-Separated Values)是一种常见的轻量级数据交换格式,本案例帮助你学习如何使用标准库 encoding/csv 来处理 CSV 文件。


🧩 应用场景

  • • 读取用户上传的数据表格
  • • 分析日志、导入信息
  • • 处理 Excel 导出的数据(保存为 .csv)

🧠 涉及知识点

  • • 使用 os.Open() 打开文件
  • • 使用 csv.NewReader() 读取文件内容
  • • 使用 for 循环遍历每一行
  • • 错误处理和资源释放

📄 示例CSV文件:data.csv

复制代码
姓名,身份证号,年龄
张三,123456789012345678,30
李四,234567890123456789,28
王五,345678901234567890,35

💻 示例代码

go 复制代码
package main

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

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

    // 创建CSV读取器
    reader := csv.NewReader(file)

    // 读取所有内容(可选择一行一行读)
    records, err := reader.ReadAll()
    if err != nil {
        fmt.Println("读取CSV内容失败:", err)
        return
    }

    // 打印CSV内容
    fmt.Println("CSV文件内容如下:")
    for i, row := range records {
        fmt.Printf("第 %d 行: %v\n", i+1, row)
    }
}

🧪 运行结果示例

ini 复制代码
CSV文件内容如下:
第 1 行: [姓名 身份证号 年龄]
第 2 行: [张三 123456789012345678 30]
第 3 行: [李四 234567890123456789 28]
第 4 行: [王五 345678901234567890 35]

🛠 技术说明

  • encoding/csv 是 Go 标准库中的 CSV 解析器,提供快速可靠的读写支持
  • reader.ReadAll() 会一次性读取全部内容,适合小文件(几千行以内)
  • • 若处理大型文件,建议使用 reader.Read() 逐行读取

📌 拓展练习

  • • 逐行读取,并仅打印姓名和年龄
  • • 添加错误检查,跳过非法行
  • • 支持 UTF-8 with BOM 格式的 CSV
  • • 将数据存入结构体切片并操作

✅ 小结

本案例教会了你如何使用 Go 语言读取 CSV 文件并打印内容。掌握这种处理方式,将为你今后进行批量数据导入、清洗、分析打下基础。


相关推荐
自由的疯21 分钟前
Java 怎么学习Kubernetes
java·后端·架构
自由的疯21 分钟前
Java kubernetes
java·后端·架构
QX_hao7 小时前
【Go】--map和struct数据类型
开发语言·后端·golang
MC丶科7 小时前
【SpringBoot 快速上手实战系列】5 分钟用 Spring Boot 搭建一个用户管理系统(含前后端分离)!新手也能一次跑通!
java·vue.js·spring boot·后端
G探险者8 小时前
为何一个系统上线要经过N轮测试?带你看懂企业级发布体系
后端
lang201509289 小时前
Spring Boot 入门:5分钟搭建Hello World
java·spring boot·后端
间彧10 小时前
Windows Server,如何使用WSFC+nginx实现集群故障转移
后端
间彧10 小时前
Nginx + Keepalived 实现高可用集群(Linux下)
后端
间彧10 小时前
在Kubernetes中如何部署高可用的Nginx Ingress Controller?
后端