Go언어 csv.gz 파일 만들기 – Go writing of csv.gz file

Go언어로 csv.gz 파일을 만드는 코드입니다.

csv는 단순한 텍스트 파일이기 때문에 공간 절약을 위해서 요즘은 데이터 플랫폼들이 csv를 gzip으로 압축한 것을 바로 처리할 수 있도록 지원합니다.

그래서 파일을 만들때 단순한 csv를 만들지 않고 csv를 gzip으로 압축하는 것이 더 유리합니다.

// An example of writing to a csv.gzip compressed file.
package main

import (
	"compress/gzip"
	"encoding/csv"
	"fmt"
	"log"
	"os"
)

func main() {

	csvGzipFile, err := os.Create("output.csv.gz")
	if err != nil {
		fmt.Println("Error:", err)
		return
	}
	defer csvGzipFile.Close()

	gzipWriter := gzip.NewWriter(csvGzipFile)
	if err != nil {
		log.Fatal(err)
	}
	defer gzipWriter.Close()

	csvFileWriter := csv.NewWriter(gzipWriter)
	if err != nil {
		fmt.Println("Error:", err)
		return
	}
	defer csvFileWriter.Flush()

	records := [][]string{{"item1", "value1"}, {"item2", "value2"}, {"item3", "value3"}}
	for _, record := range records {
		err := csvFileWriter.Write(record)
		if err != nil {
			fmt.Println("Error:", err)
			return
		}
	}
}
Author: 떰학

답글 남기기