Golang

[Golang] csv 파일 읽고 쓰는 법

CHERMINI 2023. 2. 12.

[Golang] csv 파일 읽고 쓰는 법

Go에서 CSV 파일

을 읽고 쓰려면 기본 제공 'encoding/csv' 패키지를 사용할 수 있습니다.

 

csv 파일 읽기

다음은 CSV 파일을 읽는 방법의 예입니다.

package main

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

func main() {
	// Open the CSV file
	file, err := os.Open("data.csv")
	if err != nil {
		fmt.Println("Error opening file:", err)
		return
	}
	defer file.Close()

	// Create a new CSV reader
	reader := csv.NewReader(file)

	// Read all of the records
	records, err := reader.ReadAll()
	if err != nil {
		fmt.Println("Error reading records:", err)
		return
	}

	// Loop over the records and print them
	for _, record := range records {
		fmt.Println(record)
	}
}

 

csv 파일 쓰기

다음은 CSV 파일을 작성하는 방법의 예입니다.

package main

import (
	"encoding/csv"
	"os"
)

func main() {
	// Open the CSV file for writing
	file, err := os.Create("data.csv")
	if err != nil {
		fmt.Println("Error creating file:", err)
		return
	}
	defer file.Close()

	// Create a new CSV writer
	writer := csv.NewWriter(file)

	// Write the records
	records := [][]string{
		{"first_name", "last_name", "username"},
		{"Rob", "Pike", "rob"},
		{"Ken", "Thompson", "ken"},
		{"Robert", "Griesemer", "gri"},
	}
	for _, record := range records {
		if err := writer.Write(record); err != nil {
			fmt.Println("Error writing record:", err)
			return
		}
	}

	// Flush the writer to ensure all data is written
	writer.Flush()
}

 

구분 문자, 따옴표 문자 및 출력 파일에 헤더 행을 포함할지 여부와 같은 다양한 옵션을 지정하여 CSV 판독기 및 작성기의 동작을 사용자 정의할 수 있습니다. 자세한 내용은  encoding/csv 패키지의 공식 문서를 확인하세요

댓글

💲 추천 글