Python
csv.reader
csv.reader ile CSV okumayı öğrenirsin.
csv.reader ile satır okuma
CSV (virgülle ayrılmış değerler) dosyaları, tablo verisini düz metin olarak tutar. Python'un csv modülü bu dosyaları kolayca okumanı sağlar. import csv ile modülü içe aktarırsın.
Okuma için önce dosyayı açar, sonra csv.reader(f) ile bir okuyucu nesnesi oluşturursun. Bu nesne üzerinde döngü kurduğunda her satırı bir liste olarak verir; sütunlar liste öğeleridir. Dosyayı açarken newline="" parametresini de yazman gerekir; bu satır sonu işaretlerinin çift işlenmesini önler.
newline parametresi neden önemli?
Dosyayı açarken newline="" parametresi CSV modülü için kritiktir. Bu parametre, Python'ın satır sonlarını otomatik dönüştürmesini kapatır; böylece csv modülü satır sonlarını kendi yöntemiyle işler.
Bunu yapmazsan Windows'ta satır sonu \r\n olur ve bazı satırlar boş gelebilir. encoding="utf-8" de Türkçe karakterleri güvende tutar. Bu yüzden CSV dosyaları için her zaman open("f.csv", encoding="utf-8", newline="") kullanılır.
Uygulama CSV dosyasını oku ve satır sayısını yazdır
Önce import csv satırını ekle. Sonra with open("uyeler.csv", "w", encoding="utf-8", newline="") as f: bloğu içinde f.write("ad,yas\n"), f.write("Ayşe,30\n") ve f.write("Ali,25\n") ile üç satır yaz. Sonra with open("uyeler.csv", "r", encoding="utf-8", newline="") as f: bloğu içinde reader = csv.reader(f) ve rows = list(reader) ile satırları listeye çevir. En son print(len(rows)) ile satır sayısını yazdır.
Örnek çözümü göster
import csv
# CSV dosyasına üç satır yaz
with open("uyeler.csv", "w", encoding="utf-8", newline="") as f:
f.write("ad,yas\n")
f.write("Ayşe,30\n")
f.write("Ali,25\n")
# Aynı dosyayı csv.reader ile oku ve satır sayısını yazdır
with open("uyeler.csv", "r", encoding="utf-8", newline="") as f:
reader = csv.reader(f)
rows = list(reader)
print(len(rows))
Kendini test et
-
csv.reader her satırı ne olarak verir?
- Demet olarak
- Liste olarak
- Sözlük olarak
- Dize olarak
Cevabı göster
Liste olarak — Her satırın sütunları liste öğeleridir.
-
csv.reader çağrısını tamamla
import csv
with open("uyeler.csv", encoding="utf-8", newline="") as f:
reader = csv.____(f)
for row in reader:
print(row)
Cevabı göster
import csv
with open("uyeler.csv", encoding="utf-8", newline="") as f:
reader = csv.reader(f)
for row in reader:
print(row)
-
CSV kavramlarını eşleştir
- csv.reader
- Satırları okur
- row
- Tek satır verisi
- newline=""
- Satır sonu ayarı
- import csv
- Modülü içe aktarma
Sıradaki ders: csv.writer