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
}
}
}