Функция csv.NewReader
Функция csv.NewReader создает новый ридер для чтения CSV-данных
из переданного в параметре io.Reader. Возвращаемый объект
*csv.Reader предоставляет методы для построчного или
полного чтения записей. Ридер автоматически обрабатывает
стандартные настройки CSV: запятая в качестве разделителя,
двойные кавычки для экранирования.
Синтаксис
csv.NewReader(r io.Reader) *csv.Reader
Пример
Давайте прочитаем все записи из CSV-строки с разделителем запятой:
package main
import (
"encoding/csv"
"fmt"
"strings"
)
func main() {
data := "name,age,city\nJohn,30,NY\nJane,25,LA"
r := csv.NewReader(strings.NewReader(data))
records, err := r.ReadAll()
if err != nil {
fmt.Println("Error:", err)
return
}
for _, record := range records {
fmt.Println(record)
}
}
Результат выполнения кода:
[name age city]
[John 30 NY]
[Jane 25 LA]
Пример
Давайте прочитаем CSV-строку с точкой с запятой в качестве разделителя, изменив настройки ридера:
package main
import (
"encoding/csv"
"fmt"
"strings"
)
func main() {
data := "id;product;price\n1;apple;1.50\n2;banana;0.75"
r := csv.NewReader(strings.NewReader(data))
r.Comma = ';' // устанавливаем разделитель
records, err := r.ReadAll()
if err != nil {
fmt.Println("Error:", err)
return
}
for _, record := range records {
fmt.Println(record)
}
}
Результат выполнения кода:
[id product price]
[1 apple 1.50]
[2 banana 0.75]
Смотрите также
-
функцию
csv.NewWriter,
которая создает объект для записи CSV-данных -
метод
csv.Reader.ReadAll,
который читает все записи из CSV -
метод
csv.Reader.Read,
который читает одну запись из CSV -
структуру
csv.ParseError,
которая описывает ошибки разбора CSV