🎯 案例目标
掌握如何使用 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 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) } }
🧪 运行结果示例
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 文件并打印内容。掌握这种处理方式,将为你今后进行批量数据导入、清洗、分析打下基础。