golang read csv file

To read a CSV file in Go (Golang), you can follow the steps below:

  1. Import the required packages:
import (
    "encoding/csv"
    "os"
)

The encoding/csv package provides functions to read and write CSV files, while the os package allows you to interact with the operating system.

  1. Open the CSV file:
file, err := os.Open("file.csv")
if err != nil {
    // Handle error
}
defer file.Close()

Here, we use the Open function from the os package to open the CSV file. If an error occurs, we can handle it accordingly. The defer keyword is used to ensure that the file is closed after we are done reading it.

  1. Create a CSV reader:
reader := csv.NewReader(file)

The csv.NewReader function takes a io.Reader interface as an argument, which is satisfied by the file variable. This creates a new CSV reader that can be used to read the contents of the file.

  1. Read the CSV records:
records, err := reader.ReadAll()
if err != nil {
    // Handle error
}

The ReadAll function reads all the remaining records from the CSV reader and returns them as a slice of slices, where each inner slice represents a record. If an error occurs while reading, we can handle it accordingly.

  1. Process the CSV data:
for _, record := range records {
    // Process each record
    // Example: Print the first column of each record
    fmt.Println(record[0])
}

We can iterate over the records slice using a for loop. Each record is a slice of strings, where each element represents a field in the CSV file. Here, we can process each record as needed. In this example, we print the first column of each record using fmt.Println.

That's it! You now have the basic steps to read a CSV file in Go (Golang). Remember to handle any errors that may occur during the process.