PHpullh

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 메타데이터를 가집니다.