Go语言通过encoding/csv标准库提供CSV读写支持:Read()逐行解析为字符串切片,Write()配合Flush()写入,支持自定义分隔符和UTF-8编码,结构体映射需手动对齐表头。
Go 语言通过标准库 encoding/csv 提供了简洁、高效的 CSV 文件读写支持,无需第三方依赖,适合处理结构化表格数据。
使用 csv.NewReader 从文件或任意 io.Reader 中逐行读取,返回字符串切片(每行一列)。
os.File 创建 readerRead() 一次读一行,返回 []string 和错误示例:
file, _ := os.Open("data.csv")用 csv.NewWriter 包装 io.Writer(如文件),调用 Write() 写入
一行,最后别忘 Flush()。
[]string,自动处理含逗号、换行、引号的字段(内部转义)WriteAll() 可一次性写多行,更简洁w.Flush() 确保数据真正写入磁盘示例:
file, _ := os.Create("output.csv")标准库不直接支持 struct tag 映射,但可手动结合表头做字段对齐,提升可读性与维护性。
Read() 获取 headers 切片map[string]int)例如定义 type Person struct { Name, Age, City string },再根据 headerMap["Name"] 找到对应列位置。
encoding/csv 默认按 UTF-8 处理,且仅支持逗号分隔。若需其他分隔符(如制表符、分号),可设置 reader.Comma = '\t' 或 w.Comma = ';'。
golang.org/x/text/encoding 转换为 UTF-8 再交给 csv reader基本上就这些。标准库够用、轻量、稳定,适合大多数 CSV 场景 —— 不复杂但容易忽略 Flush 和错误处理。