Essential Go / CSV

Run Settings
LanguageGo
Language Version
Run Command
package main import ( "encoding/csv" "fmt" "io/ioutil" "log" "os" ) func writeCSV() error { f, err := os.Create("stocks_tmp.csv") if err != nil { return err } w := csv.NewWriter(f) records := [][]string{ {"date", "price", "name"}, {"2013-02-08", "15,07", "GOOG"}, {"2013-02-09", "15,09", "GOOG"}, } for _, rec := range records { err = w.Write(rec) if err != nil { f.Close() return err } } // csv.Writer might buffer writes for performance so we must // Flush to ensure all data has been written to underlying // writer w.Flush() // Flush doesn't return an error. If it failed to write, we // can get the error with Error() err = w.Error() if err != nil { return err } // Close might also fail due to flushing out buffered writes err = f.Close() return err } func main() { writeCSV() d, err := ioutil.ReadFile("stocks_tmp.csv") if err != nil { log.Fatalf("ioutil.ReadAll() failed with '%s'\n", err) } fmt.Printf("%s\n", string(d)) os.Remove("stocks_tmp.csv") }
Editor Settings
Theme
Key bindings
Full width
Lines