[go] CSV 파일의 특정 열 처리
CSV (Comma Separated Values) 파일은 데이터를 효과적으로 저장하고 전송하기 위한 일반적인 형식입니다. 종종 CSV 파일에서 특정 열의 데이터를 처리해야 할 때가 있습니다. 이 블로그 포스트에서는 Go 언어를 사용하여 CSV 파일에서 특정 열의 데이터를 처리하는 방법을 살펴보겠습니다.
커서를 사용하여 특정 열 읽기
먼저, encoding/csv
패키지를 사용하여 CSV 파일을 열고 특정 열의 데이터를 읽는 방법을 살펴보겠습니다. 다음과 같이 코드를 작성할 수 있습니다.
package main
import (
"encoding/csv"
"fmt"
"os"
)
func main() {
file, err := os.Open("data.csv")
if err != nil {
panic(err)
}
defer file.Close()
reader := csv.NewReader(file)
records, err := reader.ReadAll()
if err != nil {
panic(err)
}
for _, record := range records {
fmt.Println(record[2]) // 2는 읽고자 하는 열의 인덱스
}
}
위 코드를 실행하면 CSV 파일의 세 번째 열의 데이터를 출력할 수 있습니다.
필터링하여 특정 열 읽기
특정 조건을 충족하는 행만 읽어와서 해당하는 열의 데이터를 처리할 수도 있습니다. 다음은 필터링하여 특정 열의 데이터를 처리하는 예시입니다.
package main
import (
"encoding/csv"
"fmt"
"os"
)
func main() {
file, err := os.Open("data.csv")
if err != nil {
panic(err)
}
defer file.Close()
reader := csv.NewReader(file)
records, err := reader.ReadAll()
if err != nil {
panic(err)
}
for _, record := range records {
if record[1] == "example" {
fmt.Println(record[2])
}
}
}
위 코드를 실행하면 두 번째 열이 “example”인 행의 세 번째 열의 데이터만 출력됩니다.
결론
Go 언어를 사용하여 CSV 파일에서 특정 열의 데이터를 처리하는 방법에 대해 살펴보았습니다. CSV 파일을 열고 encoding/csv
패키지의 기능을 사용하여 데이터를 처리하는 방법을 익히면 간단한 데이터 처리 작업을 쉽게 수행할 수 있습니다.
이러한 기능들을 사용하여 데이터를 효과적으로 읽고 처리할 수 있도록 연습하여 실제 프로젝트에 적용해 보시기 바랍니다.
참고 자료
- Go 언어 공식 문서: https://golang.org/pkg/encoding/csv/