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