0Pricing
Go Academy · Ders

encoding/csv

CSV okuyun ve yazın

encoding/csv, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Go Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Go Academy kursu toplamda 4 dersten oluşur.

CSV Nedir

CSV (virgülle ayrılmış değerler), tablo verilerini düz metin olarak depolar; her satırda bir kayıt bulunur ve alanlar virgüllerle ayrılır. Go'nun encoding/csv paketi bu verileri okur ve yazar.

Bir Dizgeden Okuma

Herhangi bir io.Reader üzerinden bir okuyucu oluşturun. strings.NewReader, bir dizeyi sararak dosya kullanmadan gösterim yapmamızı sağlar.

package main

import (
	"encoding/csv"
	"fmt"
	"strings"
)

func main() {
	r := csv.NewReader(strings.NewReader("a,b,c"))
	rec, _ := r.Read()
	fmt.Println(rec)
}

Tüm Kayıtları Okuma

ReadAll, her satırı bir [][]string içine okur. İçteki her dilim, bir kaydın alanlarını içerir.

package main

import (
	"encoding/csv"
	"fmt"
	"strings"
)

func main() {
	data := "name,age\nAnn,30\nBob,25"
	r := csv.NewReader(strings.NewReader(data))
	records, _ := r.ReadAll()
	fmt.Println(records)
}

Satır Satır Okuma

Büyük dosyalarda Read ile her seferinde bir kayıt okuyun. Okuma tamamlandığında io.EOF döndürür.

package main

import (
	"encoding/csv"
	"fmt"
	"io"
	"strings"
)

func main() {
	r := csv.NewReader(strings.NewReader("a,1\nb,2"))
	for {
		rec, err := r.Read()
		if err == io.EOF {
			break
		}
		fmt.Println(rec)
	}
}

Alanlara Erişme

Her kayıt, dizelerden oluşan bir dilimdir. Bir sütunu okumak için bu dilimi dizinleyin.

package main

import (
	"encoding/csv"
	"fmt"
	"strings"
)

func main() {
	r := csv.NewReader(strings.NewReader("Ann,30"))
	rec, _ := r.Read()
	fmt.Println("name:", rec[0], "age:", rec[1])
}

Özel Sınırlayıcı

Noktalı virgül veya sekme gibi farklı bir ayırıcı kullanmak için r.Comma değerini ayarlayın.

package main

import (
	"encoding/csv"
	"fmt"
	"strings"
)

func main() {
	r := csv.NewReader(strings.NewReader("a;b;c"))
	r.Comma = ';'
	rec, _ := r.Read()
	fmt.Println(rec)
}

CSV Yazma

csv.NewWriter kayıtları yazar. Arabelleğe alınan verileri göndermek için Flush çağrısını yapın.

package main

import (
	"encoding/csv"
	"os"
)

func main() {
	w := csv.NewWriter(os.Stdout)
	w.Write([]string{"name", "age"})
	w.Write([]string{"Ann", "30"})
	w.Flush()
}

Çok Sayıda Satır Yazma

WriteAll, bir [][]string değerinin tamamını tek seferde yazar ve arabelleği otomatik olarak temizler.

package main

import (
	"encoding/csv"
	"os"
)

func main() {
	w := csv.NewWriter(os.Stdout)
	rows := [][]string{{"a", "1"}, {"b", "2"}}
	w.WriteAll(rows)
}

Otomatik Tırnaklama

Yazıcı, virgül, tırnak işareti veya satır sonu içeren alanları tırnak içine alır; böylece çıktı geçerli bir CSV olarak kalır.

package main

import (
	"encoding/csv"
	"os"
)

func main() {
	w := csv.NewWriter(os.Stdout)
	w.Write([]string{"hello, world", "plain"})
	w.Flush()
}

Flush'ı Unutmayın

Yazıcı verileri arabelleğe alır. Flush çağrısını unutursanız (ve WriteAll kullanmazsanız) bazı satırlar hiç yazılmayabilir. Program sona ermeden önce her zaman arabelleği temizleyin.

Hataları Ele Alma

Arabelleği temizledikten sonra, arabelleğe alma sırasında oluşan yazma başarısızlıklarını yakalamak için w.Error() değerini kontrol edin.

package main

import (
	"encoding/csv"
	"fmt"
	"os"
)

func main() {
	w := csv.NewWriter(os.Stdout)
	w.Write([]string{"x", "y"})
	w.Flush()
	fmt.Fprintln(os.Stderr, w.Error())
}

Hızlı Kontrol

Bir CSV okuyucusunun ayrıştırılmış veriler için ReadAll çağrısından döndürdüğü değer nedir?

Özet

encoding/csv:

  • Read veya ReadAll ile csv.NewReader
  • Write/WriteAll ile csv.NewWriter, ardından Flush
  • Özel sınırlayıcılar için Comma değerini ayarlayın; tırnaklama otomatiktir

Sıkça Sorulan Sorular

“encoding/csv” dersi ücretsiz mi?

Evet — “encoding/csv” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Go Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Go Academy kursu toplamda 4 dersten oluşur.

“encoding/csv” dersinde ne öğreneceğim?

CSV okuyun ve yazın Go Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Go Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Go Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“encoding/csv” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Go Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Go Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. encoding/json Tekrarı
  2. encoding/xml
  3. encoding/csv
  4. gob ve İkili Kodlama
← Go Academy Sayfasına Dön