[go] CSV 파일의 데이터 합계 계산

CSV(Comma-Separated Values) 파일은 데이터를 저장하고 전송하는 데 널리 사용되는 형식입니다. 이 파일 형식을 사용하여 데이터를 읽고 쓰는 방법에 대해 알아보겠습니다.

1. CSV 파일 읽기

우선 Go에서 CSV 파일을 읽기 위해 encoding/csv 패키지를 사용합니다. 다음 예제는 test.csv 파일을 읽고 데이터를 출력하는 방법을 보여줍니다.

package main

import (
	"encoding/csv"
	"fmt"
	"os"
)

func main() {
	// CSV 파일 오픈
	file, err := os.Open("test.csv")
	if err != nil {
		fmt.Println("Error:", err)
		return
	}
	defer file.Close()

	// CSV 파일 읽기
	reader := csv.NewReader(file)
	records, err := reader.ReadAll()
	if err != nil {
		fmt.Println("Error:", err)
		return
	}

	// 데이터 출력
	for _, row := range records {
		fmt.Println(row)
	}
}

2. 데이터 합계 계산

CSV 파일에서 숫자 데이터를 합계로 계산하기 위해서는 각 행의 데이터를 분석하여 숫자로 변환한 후 합계를 계산해야 합니다. 다음은 CSV 파일에서 첫 번째 열의 숫자 데이터를 합계로 계산하는 예제입니다.

package main

import (
	"encoding/csv"
	"fmt"
	"os"
	"strconv"
)

func main() {
	// CSV 파일 오픈
	file, err := os.Open("test.csv")
	if err != nil {
		fmt.Println("Error:", err)
		return
	}
	defer file.Close()

	// CSV 파일 읽기
	reader := csv.NewReader(file)
	records, err := reader.ReadAll()
	if err != nil {
		fmt.Println("Error:", err)
		return
	}

	// 데이터 합계 계산
	sum := 0
	for _, row := range records {
		num, err := strconv.Atoi(row[0])
		if err != nil {
			fmt.Println("Invalid number:", row[0])
			continue
		}
		sum += num
	}
	fmt.Println("합계:", sum)
}

결론

Go 언어를 사용하여 CSV 파일에서 데이터를 읽고 합계를 계산하는 방법을 살펴보았습니다. encoding/csv 패키지와 숫자 변환 기능을 활용하여 데이터 처리를 손쉽게 할 수 있습니다. 이를 참고하여 자신만의 데이터 처리 로직을 구현해보세요!

이상입니다. 부가적인 도움이 필요하시면 말씀해주세요.

참고 자료