Go언어로 csv.gz 파일을 만드는 코드입니다.
csv는 단순한 텍스트 파일이기 때문에 공간 절약을 위해서 요즘은 데이터 플랫폼들이 csv를 gzip으로 압축한 것을 바로 처리할 수 있도록 지원합니다.
그래서 파일을 만들때 단순한 csv를 만들지 않고 csv를 gzip으로 압축하는 것이 더 유리합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
// 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 } } } |