当前位置: 首页 > news >正文

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

💻 示例代码

package mainimport ("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)}
}

🧪 运行结果示例

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 文件并打印内容。掌握这种处理方式,将为你今后进行批量数据导入、清洗、分析打下基础。


http://www.dtcms.com/a/289938.html

相关文章:

  • python 正则表达式
  • 借助 Amazon SageMaker Catalog 功能,简化从数据到洞察的路径
  • FastLLVE:实时低光视频增强新突破
  • 大端小端:数据存储的核心密码
  • Apache IoTDB(2):时序数据库 IoTDB 集群安装部署的技术优势与适用场景分析
  • 论文Review Lidar 3DGS Splat-LOAM: Gaussian Splatting LiDAR Odometry and Mapping
  • 【软件基础学习配置那些事 4-3】3ds Max2026 菜单栏常用命令-----文件、视图、编辑、工具、组
  • 深入详解随机森林在放射治疗计划优化中的应用及实现细节
  • 暴力破解练习
  • Reptile元学习算法复现实战:在Omniglot数据集上的少样本学习探索
  • 【AlphaFold3】网络架构篇(1)|概览+预测算法
  • 面试总结第54天微服务开始
  • 基础神经网络模型搭建
  • AI效能之AI单测(一)
  • MCP协议解析:如何通过Model Context Protocol 实现高效的AI客户端与服务端交互
  • c++ duiLib 使用xml文件编写界面布局
  • MyBatis Plus高效开发指南
  • 【PyTorch】图像二分类项目
  • JWT原理及利用手法
  • XTTS实现语音克隆:精确控制音频格式与生成流程【TTS的实战指南】
  • `SearchTransportService` 是 **协调节点与数据节点之间“搜索子请求”通信的运输层**
  • 如何用immich将苹果手机中的照片备份到指定文件夹
  • 开发工具缓存目录
  • 零基础学习性能测试第一章:核心性能指标-响应时间
  • 单链表的手动实现+相关OJ题
  • PostgreSQL 字段类型速查与 Java 枚举映射
  • 【硬件】GalaxyTabPro10.1(SM-T520)刷机/TWRP/LineageOS14/安卓7升级全过程
  • 讲座|人形机器人多姿态站起控制HoST及宇树G1部署
  • C++ 并发 future, promise和async
  • 2025年AIR SCI1区TOP,缩减因子分数阶蜣螂优化算法FORDBO,深度解析+性能实测