[go] encoding/csv 패키지의 사용법
go 언어에서 CSV(comma-separated values) 파일을 다루기 위해 기본 패키지 중 하나는 encoding/csv
이다. 이 패키지는 CSV 형식의 데이터를 읽고 쓸 수 있는 함수와 구조체를 제공한다.
CSV 파일 읽기
CSV 파일을 읽기 위해서는 Read
또는 ReadAll
메서드를 사용한다.
Read 메서드
package main
import (
"encoding/csv"
"fmt"
"os"
)
func main() {
file, err := os.Open("data.csv")
if err != nil {
fmt.Println("Error:", err)
return
}
defer file.Close()
reader := csv.NewReader(file)
for {
record, err := reader.Read()
if err != nil {
break
}
fmt.Println(record)
}
}
ReadAll 메서드
package main
import (
"encoding/csv"
"fmt"
"os"
)
func main() {
file, err := os.Open("data.csv")
if err != nil {
fmt.Println("Error:", err)
return
}
defer file.Close()
reader := csv.NewReader(file)
records, err := reader.ReadAll()
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println(records)
}
CSV 파일 쓰기
CSV 파일을 쓰기 위해서는 Write
메서드를 사용한다.
package main
import (
"encoding/csv"
"os"
)
func main() {
file, err := os.Create("output.csv")
if err != nil {
panic(err)
}
defer file.Close()
writer := csv.NewWriter(file)
defer writer.Flush()
data := [][]string{
{"Name", "Age", "City"},
{"Alice", "25", "New York"},
{"Bob", "30", "San Francisco"},
{"Carol", "28", "Seattle"},
}
for _, record := range data {
err := writer.Write(record)
if err != nil {
panic(err)
}
}
}
encoding/csv
패키지를 사용하면 편리하게 CSV 파일을 읽고 쓸 수 있다.
더 많은 정보를 원하시면 공식 문서를 참고하세요.