[go] CSV 파일의 데이터 정렬
Go 언어를 사용하여 CSV(Comma-Separated Values) 파일에서 데이터를 읽고 정렬하는 방법에 대해 알아보겠습니다.
CSV 파일 읽기
우선 encoding/csv
패키지를 사용하여 CSV 파일을 읽는 방법을 살펴보겠습니다. 아래는 CSV 파일을 열어 데이터를 읽고 각 라인을 슬라이스로 반환하는 예제 코드입니다.
package main
import (
"encoding/csv"
"os"
"log"
)
func main() {
file, err := os.Open("data.csv")
if err != nil {
log.Fatal(err)
}
defer file.Close()
reader := csv.NewReader(file)
records, err := reader.ReadAll()
if err != nil {
log.Fatal(err)
}
// 데이터 처리
// ...
}
데이터 정렬
이제 데이터를 정렬하는 방법을 알아보겠습니다. Go에는 sort
패키지를 사용하여 슬라이스를 정렬할 수 있습니다. 다음은 CSV 파일의 데이터를 정렬하는 예제 코드입니다.
// ...
import (
"sort"
)
// ...
// 나이를 기준으로 데이터를 정렬하는 예제
type ByAge [][]string
func (a ByAge) Len() int { return len(a) }
func (a ByAge) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
func (a ByAge) Less(i, j int) bool { return a[i][2] < a[j][2] }
func main() {
// ...
// 나이를 기준으로 정렬
sort.Sort(ByAge(records))
// 정렬된 데이터 출력
for _, record := range records {
// 데이터 출력
}
}
위의 예제 코드에서 ByAge
구조체를 정의하고 Less
함수를 구현하여 나이를 기준으로 데이터를 정렬하였습니다.
마무리
이제 Go를 사용하여 CSV 파일의 데이터를 읽고 정렬하는 방법을 알아보았습니다. encoding/csv
패키지를 사용하여 CSV 파일을 읽고, sort
패키지를 사용하여 데이터를 정렬할 수 있습니다.
더 많은 정보는 Go 언어 공식 문서를 참조하시기 바랍니다.