How to read a CSV file in Go
File sample-data.csv
:
id, name, age
1, Antony, 39
2, Amalia, 32
3, Tommy, 21
4, Andrew, 29
5, Kim, 24
File main.go
:
package main
import (
"bufio"
"encoding/csv"
"io"
"log"
"os"
)
func main() {
csvFile, err := os.Open("sample-data.csv")
if err != nil {
log.Fatal("could not open csv file..")
}
reader := csv.NewReader(bufio.NewReader(csvFile))
for {
var line []string
if line, err = reader.Read(); err != nil {
if err == io.EOF {
break
}
log.Fatal(err)
}
log.Printf("Hi, my name is %s and I am %s years old", line[1], line[2])
}
}
Output:
2019/05/22 22:09:15 Hi, my name is name and I am age years old // header line
2019/05/22 22:09:15 Hi, my name is Antony and I am 39 years old
2019/05/22 22:09:15 Hi, my name is Amalia and I am 32 years old
2019/05/22 22:09:15 Hi, my name is Tommy and I am 21 years old
2019/05/22 22:09:15 Hi, my name is Andrew and I am 29 years old
2019/05/22 22:09:15 Hi, my name is Kim and I am 24 years old