[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 패키지의 기능을 사용하여 데이터를 처리하는 방법을 익히면 간단한 데이터 처리 작업을 쉽게 수행할 수 있습니다.

이러한 기능들을 사용하여 데이터를 효과적으로 읽고 처리할 수 있도록 연습하여 실제 프로젝트에 적용해 보시기 바랍니다.

참고 자료