[go] CSV 파일의 데이터 가공
CSV(Comma-Separated Values)는 텍스트 파일 형식의 데이터 저장 방식으로, 쉼표로 구분된 데이터를 가지고 있습니다. 이 튜토리얼에서는 Go 언어를 사용하여 CSV 파일을 읽고 데이터를 가공하는 방법을 살펴볼 것입니다.
CSV 파일 읽기
가장 먼저, encoding/csv
패키지를 사용하여 CSV 파일을 읽어야 합니다.
package main
import (
"encoding/csv"
"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)
}
// records를 가공하기
}
위의 코드는 data.csv
파일을 열고, CSV 리더를 사용하여 파일의 모든 레코드를 읽습니다.
데이터 가공
읽어들인 데이터를 가공하여 필요한 작업을 수행할 수 있습니다. 예를 들어, 각 레코드의 값을 출력하거나 특정 필터를 적용하여 원하는 결과를 얻을 수 있습니다.
for _, record := range records {
for _, value := range record {
fmt.Println(value)
}
}
결과 저장
데이터를 가공한 뒤에는 필요에 따라 결과를 새로운 CSV 파일에 저장할 수도 있습니다.
file, err := os.Create("output.csv")
if err != nil {
panic(err)
}
defer file.Close()
writer := csv.NewWriter(file)
defer writer.Flush()
for _, record := range processedRecords {
err := writer.Write(record)
if err != nil {
panic(err)
}
}
위의 코드는 processedRecords
를 새로운 CSV 파일에 쓰는 방법을 보여줍니다.
데이터의 길이나 형식, 해당 데이터를 어떻게 가공할지에 따라 더 많은 작업이 필요할 수 있지만, Go의 encoding/csv
패키지를 사용하면 CSV 파일을 쉽게 가공할 수 있습니다.
결론
이 튜토리얼에서는 Go 언어를 사용하여 CSV 파일을 읽고 데이터를 가공하는 기본적인 방법을 다뤘습니다. CSV 파일을 가공할 때는 실제 데이터의 구조와 필요한 작업에 따라 다양한 방법을 적용할 수 있습니다. 코드를 실행하여 실제 데이터에 적용해보면서 익숙해지는 것이 좋습니다.