GO · 파일/IO
CSV 처리
encoding/csv로 CSV 파일을 읽고 씁니다. 구조체 매핑과 스트리밍 처리를 다룹니다.
파일/IO중급csvreaderwriterencoding
핵심 설명
encoding/csv로 CSV 파일을 읽고 씁니다. 구조체 매핑과 스트리밍 처리를 다룹니다.
Go code
package main
import (
"encoding/csv"
"fmt"
"strings"
)
func main() {
// CSV 읽기
csvData := "이름,나이,도시\n김철수,30,서울\n이영희,25,부산\n"
reader := csv.NewReader(strings.NewReader(csvData))
// 헤더 읽기
header, _ := reader.Read()
fmt.Println("헤더:", header)
// 모든 레코드 읽기
records, _ := reader.ReadAll()
for _, record := range records {
fmt.Printf("이름: %s, 나이: %s, 도시: %s\n",
record[0], record[1], record[2])
}
// CSV 쓰기
var buf strings.Builder
writer := csv.NewWriter(&buf)
writer.Write([]string{"제품", "가격", "수량"})
writer.Write([]string{"Go 책", "35000", "10"})
writer.Write([]string{"키보드", "89000", "5"})
writer.Flush()
fmt.Println("\n생성된 CSV:")
fmt.Println(buf.String())
}학습 팁
대용량 CSV는 ReadAll 대신 Read()를 루프로 호출하여 한 줄씩 스트리밍 처리하세요.
주의할 점
csv.Writer 사용 후 Flush()를 호출하지 않으면 데이터가 버퍼에 남아 출력되지 않습니다.
자주 묻는 질문
CSV 처리란 무엇인가요?
encoding/csv 로 CSV 파일을 읽고 씁니다. 구조체 매핑과 스트리밍 처리를 다룹니다.
CSV 처리 학습 시 주의할 점은 무엇인가요?
csv.Writer 사용 후 Flush() 를 호출하지 않으면 데이터가 버퍼에 남아 출력되지 않습니다.
Continue Learning
Go 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.