Senior
Trebuie să procesezi un fișier CSV foarte mare în Go. Cum ai face asta fără să încarci întreg fișierul în memorie?
sobes.tech AI
Răspuns de la AI
Для обработки очень большого CSV файла в Go без загрузки всего файла в память, нужно читать и обрабатывать его построчно, используя потоковое чтение.
Можно использовать пакет encoding/csv вместе с bufio.Scanner или csv.Reader, который читает файл по строкам.
Пример:
package main
import (
"encoding/csv"
"fmt"
"io"
"log"
"os"
)
func main() {
file, err := os.Open("large.csv")
if err != nil {
log.Fatal(err)
}
defer file.Close()
reader := csv.NewReader(file)
for {
record, err := reader.Read()
if err == io.EOF {
break
}
if err != nil {
log.Fatal(err)
}
// Обработка одной строки CSV
fmt.Println(record)
}
}
Такой подход позволяет обрабатывать файл построчно, не загружая весь файл в память, что важно для больших данных.