[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 언어의 공식 문서 및 온라인 자료를 참고하여 작성하였습니다.