CodeBlanks Logo Icon CodeBlanks

csv.writer

csv.writer ile CSV yazmayı öğrenirsin.

csv.writer ile satır yazma

CSV dosyasına yazmak için csv.writer(f) ile bir yazıcı nesnesi oluşturursun. writerow(["ad", "yas"]) tek bir satırı yazar; writerows([["Ayşe", 30], ["Ali", 25]]) ise birden çok satırı tek çağrıda yazar.

Yazıcı, değerleri virgülle ayırır ve gerektiğinde tırnak içine alır; örneğin değer virgül içeriyorsa "Ahmet, Kıdemli" gibi çift tırnakla yazar. Bu, dosyanın tekrar okunmasını güvenli kılar. Elle virgül ve tırnakla uğraşmazsın.

writerows ile toplu yazma

Birden çok satırı tek seferde yazmak için writerows metodunu kullanırsın. Parametre, her öğesi bir satır olan bir listedir: writer.writerows([başlık, satır1, satır2]). Bu, döngü içinde writerow çağırmaktan kısadır.

Büyük veri yazarken writerows performans avantajı da sağlar; tek seferde tamponu boşaltır. Yine de çok büyük listelerde bellek tüketimine dikkat etmek gerekir; akıcı yazma için veriyi parça parça vermek daha iyidir.

Uygulama writerows ile iki satır yaz ve oku

Önce import csv satırını ekle. with open("urunler.csv", "w", encoding="utf-8", newline="") as f: bloğu içinde writer = csv.writer(f) yaz, sonra writer.writerows([["ad", "fiyat"], ["kalem", 5], ["defter", 10]]) ile üç satır (başlık dahil) yaz. Sonra with open("urunler.csv", "r", encoding="utf-8", newline="") as f: bloğu içinde rows = list(csv.reader(f)) ve print(len(rows)) ile satır sayısını yazdır.

Başlangıç kodu

main.py
import csv

# writerows ile üç satır (başlık + iki veri) yaz
# csv.reader ile oku, satır sayısını yazdır

Örnek çözüm

main.py
import csv

# writerows ile üç satır (başlık + iki veri) yaz
with open("urunler.csv", "w", encoding="utf-8", newline="") as f:
    writer = csv.writer(f)
    writer.writerows([["ad", "fiyat"], ["kalem", 5], ["defter", 10]])
# csv.reader ile oku, satır sayısını yazdır
with open("urunler.csv", "r", encoding="utf-8", newline="") as f:
    rows = list(csv.reader(f))
    print(len(rows))

Beklenen çıktı

3

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 writerow metodunu tamamla

Soru
writer = csv.writer(f)
writer.____(["ad", "yas"])
Cevap
writer = csv.writer(f)
writer.writerow(["ad", "yas"])

Açıklama: writerow tek satırı yazar.

2 writer.writerows(...) ne kabul eder?

  • Tek bir sayı
  • Tek bir dize
  • Satır listesi Doğru cevap
  • Bir sözlük

Açıklama: Seçim yanlış. Doğru cevap: satır listesi. writerows birden çok satırı tek çağrıda yazar.

3 csv.writer kavramlarını eşleştir

Kavram Anlamı
csv.writer Yazıcı nesne oluşturur
writerow Tek satır yazar
writerows Çok satır yazar
newline="" Satır sonu ayarı

Orta seviye bölümündeki tüm dersler