0Pricing
Python Academy · Ders

csv.DictWriter ile CSV Yazma

Yapılandırılmış verileri CSV'ye yazmak için DictReader ve DictWriter kullanın.

csv.DictWriter ile CSV Yazma, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 4. 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, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.

Giriş

csv.writer ve csv.DictWriter, tırnaklamayı ve ayraçları otomatik olarak ele alarak Python verilerini CSV biçiminde yazar.

csv.writer temelleri

csv.writer(f).writerow(row), tek bir satır yazar. writerows(rows), birden çok satır yazar.
import csv, io
buf = io.StringIO()
writer = csv.writer(buf)
writer.writerow(['name', 'age'])
writer.writerow(['Alice', 30])
print(buf.getvalue())

Tırnaklama davranışı

Varsayılan olarak virgül veya tırnak içeren alanlar otomatik olarak tırnak içine alınır. quoting=csv.QUOTE_ALL, her alanı tırnak içine alır.
import csv, io
buf = io.StringIO()
writer = csv.writer(buf, quoting=csv.QUOTE_ALL)
writer.writerow(['Alice', 'NYC, NY', 30])
print(buf.getvalue())

csv.DictWriter

DictWriter, sözlükleri satır olarak yazar. fieldnames değerini belirtin. writeheader(), sütun başlıklarını yazar.
import csv, io
buf = io.StringIO()
fields = ['name', 'age']
writer = csv.DictWriter(buf, fieldnames=fields)
writer.writeheader()
writer.writerow({'name': 'Alice', 'age': 30})
print(buf.getvalue())

Birden çok satır için writerows()

writer.writerows(list_of_rows), bir döngüde writerow() çağırmaktan daha verimlidir.
import csv, io
buf = io.StringIO()
writer = csv.DictWriter(buf, fieldnames=['x','y'])
writer.writeheader()
writer.writerows([{'x':1,'y':2},{'x':3,'y':4}])
print(buf.getvalue())

Özel ayraç

csv.writer(f, delimiter='\t'), sekmeyle ayrılmış değerleri (TSV) yazar.
import csv, io
buf = io.StringIO()
writer = csv.writer(buf, delimiter='\t')
writer.writerow(['a', 'b', 'c'])
print(repr(buf.getvalue()))

extrasaction parametresi

DictWriter(f, fieldnames, extrasaction='ignore'), ValueError oluşturmak yerine sözlükteki fazladan anahtarları sessizce yok sayar.
import csv, io
buf = io.StringIO()
w = csv.DictWriter(buf, fieldnames=['name'], extrasaction='ignore')
w.writeheader()
w.writerow({'name': 'Alice', 'extra': 'ignored'})
print(buf.getvalue())

Gerçek dosyaya yazma

with open('out.csv','w',newline='',encoding='utf-8') as f: — her zaman newline='' kullanın ve kodlamayı belirtin.
import csv, tempfile, os
tmp = tempfile.mktemp(suffix='.csv')
with open(tmp, 'w', newline='') as f:
    csv.writer(f).writerows([[1,2],[3,4]])
print(open(tmp).read())
os.unlink(tmp)

CSV'ye ekleme

open(file, 'a'), verileri dosyanın sonuna ekler. Eklerken başlığı yeniden yazmamaya dikkat edin.
import csv, io
buf = io.StringIO()
w = csv.writer(buf)
w.writerow(['x', 'y'])
print(buf.getvalue())

Büyük miktarda veriyi akışla yazma

Satır satır yazın — yazmadan önce tüm satırları bellekte biriktirmeyin.
import csv, io
buf = io.StringIO()
writer = csv.writer(buf)
for i in range(5):
    writer.writerow([i, i**2])
print(buf.getvalue())

Gidiş-dönüş sınaması

Doğruluğu doğrulamak için verileri CSV'ye yazın, ardından yeniden okuyun.
import csv, io
original = [{'name':'Alice','age':'30'},{'name':'Bob','age':'25'}]
buf = io.StringIO()
w = csv.DictWriter(buf, fieldnames=['name','age'])
w.writeheader()
w.writerows(original)
buf.seek(0)
read_back = list(csv.DictReader(buf))
print(read_back == original)

Hızlı kontrol

Sütun adlarını ilk satır olarak hangi DictWriter yöntemi yazar?

Özet

csv.writer: writerow/writerows. DictWriter: writeheader + writerow/writerows. Her zaman newline='' ile açın. Esnek sözlükler için extrasaction='ignore' kullanın.

Devam edin

Böyle devam edin! Sonraki derse geçin.

Sıkça Sorulan Sorular

“csv.DictWriter ile CSV Yazma” dersi ücretsiz mi?

Evet — “csv.DictWriter ile CSV Yazma” 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 Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.

“csv.DictWriter ile CSV Yazma” dersinde ne öğreneceğim?

Yapılandırılmış verileri CSV'ye yazmak için DictReader ve DictWriter kullanın. Python 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.

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

Önceden deneyim gerekmez. CoddyKit'te Python 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 4. dersidir.

“csv.DictWriter ile CSV Yazma” 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 Python Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Python 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. JSON Kodlama ve Kod Çözme
  2. İç İçe JSON Yapılarını İşleme
  3. csv.reader ile CSV Okuma
  4. csv.DictWriter ile CSV Yazma
← Python Academy Sayfasına Dön