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

Метод csv.Reader.ReadAll

Метод csv.Reader.ReadAll читает все оставшиеся записи из CSV-потока и возвращает их в виде среза типа [][]string. При вызове метода он читает данные до конца файла или до первой встреченной ошибки. Если чтение прошло успешно, метод возвращает все записи и nil в качестве ошибки. В случае возникновения ошибки возвращается частично прочитанные данные и сама ошибка.

Синтаксис

records, err := reader.ReadAll()

Пример

Давайте прочитаем простой CSV-файл с тремя записями:

package main import ( "encoding/csv" "fmt" "strings" ) func main() { data := `name,age,city John,30,New York Jane,25,Boston` reader := csv.NewReader(strings.NewReader(data)) records, err := reader.ReadAll() if err != nil { fmt.Println("Error:", err) return } fmt.Println(records) }

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

[[name age city] [John 30 New York] [Jane 25 Boston]]

Пример

Теперь прочитаем CSV-файл с разделителем-точкой с запятой и с комментариями:

package main import ( "encoding/csv" "fmt" "strings" ) func main() { data := `id;product;price # comment line 1;laptop;1200 2;mouse;25` reader := csv.NewReader(strings.NewReader(data)) reader.Comma = ';' reader.Comment = '#' records, err := reader.ReadAll() if err != nil { fmt.Println("Error:", err) return } fmt.Println(records) }

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

[[id product price] [1 laptop 1200] [2 mouse 25]]

Пример

Рассмотрим случай, когда в CSV-файле встречается ошибка (неправильное количество полей):

package main import ( "encoding/csv" "fmt" "strings" ) func main() { data := `name,age,city John,30,New York Jane,Boston` reader := csv.NewReader(strings.NewReader(data)) reader.FieldsPerRecord = 3 records, err := reader.ReadAll() if err != nil { fmt.Println("Error:", err) return } fmt.Println(records) }

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

"Error: record on line 3: wrong number of fields"

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

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