encoding/csv
包提供了读取和写入逗号分隔值(CSV)文件的功能。以下是使用 encoding/csv
包的基本方法:
读取CSV文件:
package main
import (
"encoding/csv"
"fmt"
"io"
"log"
"os"
)
func main() {
file, err := os.Open("example.csv")
if err != nil {
log.Fatal(err)
}
defer file.Close()
reader := csv.NewReader(file)
for {
record, err := reader.Read()
if err == io.EOF {
break
} else if err != nil {
log.Fatal(err)
}
fmt.Println(record) // record 是一个字符串切片
}
}
写入CSV文件:
package main
import (
"encoding/csv"
"log"
"os"
)
func main() {
file, err := os.Create("output.csv")
if err != nil {
log.Fatal(err)
}
defer file.Close()
writer := csv.NewWriter(file)
records := [][]string{
{"Name", "Age"},
{"Alice", "30"},
{"Bob", "25"},
}
for _, record := range records {
err := writer.Write(record)
if err != nil {
log.Fatal(err)
}
}
writer.Flush()
}
这两个示例展示了如何使用 encoding/csv
包来读取和写入CSV文件。读取时,使用 NewReader
创建一个读取器,然后循环调用 Read
方法来逐行读取CSV文件。写入时,使用 NewWriter
创建一个写入器,然后调用 Write
方法写入记录,最后调用 Flush
确保所有缓冲的记录都被写入文件。