通八洲科技

如何在Golang中处理CSV文件_Golang CSV文件读写操作示例

日期:2025-12-29 00:00 / 作者:P粉602998670
Go 标准库 encoding/csv 提供高效 CSV 读写能力,需注意分隔符、引号、换行、Flush 和 UTF-8 编码(推荐无 BOM)等细节,支持流式处理与错误检查。

Go 语言标准库 encoding/csv 提供了简洁、高效的 CSV 文件读写能力,无需第三方依赖。关键在于理解 csv.Readercsv.Writer 的使用方式,注意编码、分隔符、引号、换行等细节。

读取 CSV 文件(按行或按记录)

使用 os.Open 打开文件,再传给 csv.NewReader。推荐用 ReadAll() 一次性读取全部数据(适合中小文件),或用循环调用 Read() 逐行处理(适合大文件、流式场景)。

写入 CSV 文件(手动构造或结构体映射)

os.Create 创建文件,包装为 csv.NewWriter。写入前建议调用 writer.Write(header) 写表头。每条记录调用 writer.Write([]string{...}) 即可。

处理中文与 UTF-8 编码问题

Go 原生字符串是 UTF-8,只要文件本身保存为 UTF-8(无 BOM 推荐),读写不会乱码。但 Windows 记事本默认保存为 GBK 或带 BOM 的 UTF-8,易出错。

错误处理与性能提示

CSV 解析可能在任意行失败(格式错误、字段数不一致等),应始终检查 err。对大文件,避免全量加载到内存,优先用流式读写。

基本上就这些。标准库够用,逻辑清晰,不复杂但容易忽略 Flush 和编码细节。