[go] CSV 파일의 특정 조건에 따른 처리
CSV (Comma Separated Values) 파일은 데이터를 텍스트 형식으로 저장하는 데 널리 사용됩니다. Go 프로그래밍 언어를 사용하여 CSV 파일에서 특정 조건에 따라 데이터를 처리하는 방법에 대해 알아보겠습니다.
CSV 파일 읽기
우선, Go 언어의 encoding/csv
패키지를 사용하여 CSV 파일을 읽고 데이터를 처리할 수 있습니다. 다음은 CSV 파일을 읽고 각 행의 데이터를 출력하는 간단한 예제입니다.
package main
import (
"encoding/csv"
"fmt"
"os"
)
func main() {
file, err := os.Open("data.csv")
if err != nil {
fmt.Println("파일 열기 오류:", err)
return
}
defer file.Close()
reader := csv.NewReader(file)
records, err := reader.ReadAll()
if err != nil {
fmt.Println("CSV 데이터 읽기 오류:", err)
return
}
for _, row := range records {
fmt.Println(row)
}
}
조건에 따른 데이터 필터링
특정 조건에 따라 CSV 파일에서 데이터를 필터링하려면 조건을 정의하고, 각 행을 순회하면서 조건을 검사하여 필터링합니다. 다음은 “age” 열이 30보다 큰 행만을 필터링하는 예제입니다.
package main
import (
"encoding/csv"
"fmt"
"os"
"strconv"
)
func main() {
file, err := os.Open("data.csv")
if err != nil {
fmt.Println("파일 열기 오류:", err)
return
}
defer file.Close()
reader := csv.NewReader(file)
records, err := reader.ReadAll()
if err != nil {
fmt.Println("CSV 데이터 읽기 오류:", err)
return
}
for _, row := range records {
age, _ := strconv.Atoi(row[1])
if age > 30 {
fmt.Println(row)
}
}
}
위 코드에서는 “age” 열의 값을 정수로 변환하여 30보다 큰지를 검사하고, 조건에 맞는 행만을 출력합니다.
이제 위 예제를 참조하여 CSV 파일에서 원하는 조건에 따라 데이터를 처리할 수 있습니다.
References
코드 예제는 Go 언어의 공식 문서 및 온라인 자료를 참고하여 작성하였습니다.