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:
ReadveyaReadAllilecsv.NewReaderWrite/WriteAllilecsv.NewWriter, ardındanFlush- Özel sınırlayıcılar için
Commadeğ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.