РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1163 of 1593 menu

Метод csv.Reader.Read

Метод csv.Reader.Read читает одну запись из CSV-потока и возвращает слайс строк, содержащих поля этой записи. Метод не принимает никаких параметров. При чтении записи учитываются все настройки структуры Reader, включая разделитель полей, комментарии и обработку кавычек.

Синтаксис

func (r *Reader) Read() (record []string, err error)

Пример

Давайте прочитаем простую CSV-запись с двумя полями:

package main import ( "encoding/csv" "fmt" "strings" ) func main() { data := "John,30\n" reader := csv.NewReader(strings.NewReader(data)) res, err := reader.Read() if err != nil { fmt.Println(err) return } fmt.Println(res) }

Результат выполнения кода:

[John 30]

Пример

Давайте прочитаем CSV-запись с полями в кавычках:

package main import ( "encoding/csv" "fmt" "strings" ) func main() { data := "\"John, Doe\",\"Software Engineer\"\n" reader := csv.NewReader(strings.NewReader(data)) res, err := reader.Read() if err != nil { fmt.Println(err) return } fmt.Println(res) }

Результат выполнения кода:

[John, Doe Software Engineer]

Пример

Давайте прочитаем несколько записей в цикле до конца файла:

package main import ( "encoding/csv" "fmt" "strings" ) func main() { data := "John,30,Engineer\nJane,25,Designer\nBob,35,Manager\n" reader := csv.NewReader(strings.NewReader(data)) for { res, err := reader.Read() if err != nil { break } fmt.Println(res) } }

Результат выполнения кода:

[John 30 Engineer] [Jane 25 Designer] [Bob 35 Manager]

Пример

Давайте обработаем ошибку, если файл пуст или достигнут конец:

package main import ( "encoding/csv" "fmt" "io" "strings" ) func main() { data := "" reader := csv.NewReader(strings.NewReader(data)) res, err := reader.Read() if err == io.EOF { fmt.Println("End of file") return } if err != nil { fmt.Println(err) return } fmt.Println(res) }

Результат выполнения кода:

"End of file"

Смотрите также

  • метод csv.Reader.ReadAll,
    который читает все записи из CSV-потока сразу
  • метод csv.Writer.Write,
    который записывает одну запись в CSV-поток
  • метод csv.Writer.WriteAll,
    который записывает все записи в CSV-поток
  • тип csv.ParseError,
    который возвращается при ошибках синтаксического анализа CSV
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить