İçeriğe geç

Menü

Berk Akademi
Yorumlar Google yorumları Birebir ders başvurusu Ücretsiz ön görüşme Ana Sayfa

Python Dosya Satır Satır Nasıl Okunur? Dosya Okuma Örnekleri

python-dosya-satir-satir-nasil-okunur-dosya-okuma-ornekleri
Bu yazıda neler var?
  1. Python dosyası satır satır nasıl okunur?
  2. Satır sonları ve boş satırlar nasıl yönetilir?
  3. read(), readlines() ve for döngüsü ne zaman seçilir?
  4. Görevleri boş satırları atlayarak nasıl numaralandırırsın?
  5. FileNotFoundError için hangi sırayla kontrol yapılır?

Python dosya satır satır nasıl okunur? Dosyayı with open() ile açıp for döngüsüyle her satırı sırayla işleyebilirsin. Bu yöntem, dosyanın tamamını tek bir metin olarak almadan satırları okumayı ve her satır üzerinde ayrı işlem yapmayı sağlar.

Dosya okuma örneklerinde r modu okuma işlemini, encoding="utf-8" ise UTF-8 ile kaydedilmiş Türkçe karakterlerin doğru yorumlanmasını sağlar. Temel bilgilerini kontrol etmek için Python bilgi testi ile seviyeni ölçebilirsin.

Python dosyası satır satır nasıl okunur?

open() fonksiyonunun ilk parametresine dosya adını, ikinci parametresine açma modunu yazarsın. r modu dosyayı yalnızca okumak için açar. encoding="utf-8" ifadesi, dosyada Türkçe karakterler bulunduğunda metnin doğru okunmasına yardımcı olur.

Temel satır satır okuma örneği

with open("notlar.txt", "r", encoding="utf-8") as file:
    for line in file:
        print(line.rstrip("rn"))

Buradaki with bloğu dosyanın yönetilen biçimde kullanılmasını sağlar. Kod bloğu sona erdiğinde dosya otomatik olarak kapatılır. İşlem sırasında bir hata oluşsa bile dosyanın kapanış süreci Python tarafından yönetilir. for line in file ifadesi ise dosyadaki satırları sırayla line değişkenine aktarır.

notlar.txt içinde iki satır bulunduğunu düşünelim:

Python öğreniyorum
Dosya okumayı deniyorum

Beklenen çıktı:

Python öğreniyorum
Dosya okumayı deniyorum

rstrip("rn") satırın sonunda bulunan satır sonu karakterlerini temizler. Temel akışı adım adım tekrar etmek istersen Berk Akademi'nin ücretsiz Sıfırdan Temel Python video eğitimi bu konudaki sözdizimini pekiştirmene yardımcı olabilir.

Satır sonları ve boş satırlar nasıl yönetilir?

Satır sonları ve boş satırlar nasıl yönetilir?

Dosyadan okunan line değişkeni çoğu zaman satır sonu karakterini de içerir. Bu nedenle satırın sonunu temizlemeden print(line) kullanırsan çıktıda satırlar arasında beklenmeyen boşluklar oluşabilir. line.rstrip("rn") yalnızca satır sonlarını kaldırır. line.rstrip() ise satır sonuna ek olarak sondaki boşlukları ve sekmeleri de temizler.

Boş satırları korumak istiyorsan temizlediğin satırı doğrudan yazdırabilirsin. Boş satırları atlamak içinse line.strip() sonucunu koşul olarak kullanabilirsin. Bu kontrol, yalnızca boşluk veya sekmeden oluşan satırları da boş kabul eder.

with open("gorevler.txt", "r", encoding="utf-8") as file:
    for number, line in enumerate(file, start=1):
        line = line.rstrip("rn")

        if line.strip():
            print(f"{number}. {line}")

Dosyanın üçüncü satırı boşsa çıktı aşağıdaki gibi olur:

1. Python çalış
2. Dosyayı aç
4. Sonucu kontrol et

Burada boş satır yazdırılmadığı için üçüncü numara görünmez. enumerate(file, start=1) dosyadaki gerçek satır numarasını korur.

İhtiyaç Uygulama Sonuç
Yalnız satır sonunu kaldırmak line.rstrip("rn") Satır içindeki boşluklar korunur
Sondaki tüm boşlukları temizlemek line.rstrip() Boşluk ve sekmeler de kaldırılır
Boş satırları atlamak if line.strip(): İçeriği olmayan satırlar yazdırılmaz
Satır numarası eklemek enumerate(file, start=1) Numaralandırma 1'den başlar

read(), readlines() ve for döngüsü ne zaman seçilir?

read(), readlines() ve for döngüsü ne zaman seçilir?

Python dosya okurken seçeceğin yöntem, dosyanın tamamını birlikte mi incelemek istediğine yoksa satırları sırayla mı işlemek istediğine bağlıdır. read() bütün içeriği tek bir metin olarak, readlines() satırları bir liste olarak verir. Dosya nesnesi üzerinde doğrudan for döngüsü kullanmak ise satırları sırayla işlemene yardımcı olur.

Yöntem Çıktı biçimi Ne zaman seçilir? Bellek yaklaşımı
read() Tek bir metin Tüm dosya içeriğini birlikte incelemek, aramak veya başka bir işleme aktarmak istediğinde Dosyanın tamamını tek bir metin olarak toplar
readlines() Metinlerden oluşan liste Satırlara sıra numarasıyla erişmek, satırları tekrar kullanmak veya indekslemek istediğinde Tüm satırları bir liste içinde toplar
for döngüsü Her turda bir satır Satırları sırayla filtrelemek, dönüştürmek, yazdırmak veya işlemek istediğinde Satırları ayrıca bir listeye toplamadan ilerler

Karar vermek için şu çerçeveyi kullanabilirsin:

  1. Dosyanın tamamını tek parça olarak ele alacaksan read() kullan.
  2. Satırları liste olarak saklaman veya belirli bir satıra indeksle ulaşman gerekiyorsa readlines() seç.
  3. Her satır üzerinde ayrı işlem yapacaksan doğrudan for döngüsünü tercih et.

Görevleri boş satırları atlayarak nasıl numaralandırırsın?

Bir görev dosyasındaki boş satırları numaralandırmaya katmamak için önce satırın kenarlarındaki boşlukları strip() ile temizleyebilir, ardından metin boşsa continue ile o satırı atlayabilirsin. Numara artırma işlemini yalnızca geçerli bir görev yazdırıldıktan sonra yapmak, sıra numaralarının kesintisiz ilerlemesini sağlar.

gorevler.txt içeriği:

Python değişkenlerini tekrar et

Dosya okuma örneği yaz
Kodu çalıştır ve sonucu kontrol et
with open("gorevler.txt", "r", encoding="utf-8") as dosya:
    sira = 1

    for satir in dosya:
        gorev = satir.strip()

        if not gorev:
            continue

        print(f"{sira}. {gorev}")
        sira += 1

Beklenen çıktı:

1. Python değişkenlerini tekrar et
2. Dosya okuma örneği yaz
3. Kodu çalıştır ve sonucu kontrol et

Burada strip() sonucunda boş metne dönüşen satırlar atlanır. sira değişkeni yalnızca görev yazdırıldıktan sonra artırıldığı için boş satırlar numara aralığı oluşturmaz. Bu ayrımı küçük alıştırmalarla pekiştirmek için Python bilgi testini çözebilirsin.

FileNotFoundError için hangi sırayla kontrol yapılır?

FileNotFoundError, Python’un açmaya çalıştığı dosyayı belirtilen yol üzerinde bulamadığını gösterir. Çözüm için yolu rastgele değiştirmek yerine şu sırayı izle: çalışma konumu, dosya adı ve uzantı, klasör yolu.

Üç adımlı teşhis sırası

  1. Çalışma konumunu kontrol et: Path.cwd() ile programın hangi klasörden çalıştığını gör. Göreli veriler/gorevler.txt yolu bu klasöre göre aranır.
  2. Dosya adı ve uzantısını kontrol et: Harfleri, boşlukları ve .txt uzantısını dosya adıyla aynı yaz. Bazı dosya sistemlerinde büyük ve küçük harf farkı önemlidir.
  3. Klasör yolunu kontrol et: veriler klasörünün çalışma konumunun içinde bulunduğundan emin ol. Dosya başka bir klasördeyse göreli yolu buna göre düzenle.
KontrolSorulacak soru
Çalışma konumuPython hangi klasörde çalışıyor?
Dosya adıAd ve uzantı birebir aynı mı?
Klasör yoluDosya belirtilen klasörün içinde mi?

Aşağıdaki örnek, çalışma konumunu ve kontrol edilen yolu gösterir:

from pathlib import Path

dosya_yolu = Path("veriler") / "gorevler.txt"

print("Çalışma konumu:", Path.cwd())
print("Kontrol edilen yol:", Path.cwd() / dosya_yolu)

try:
    with dosya_yolu.open("r", encoding="utf-8") as dosya:
        print(dosya.readline().rstrip())
except FileNotFoundError:
    print("Dosya bulunamadı. Klasör, ad ve uzantıyı kontrol et.")

Dosya bulunamadığında son satır şu şekilde görünür:

Dosya bulunamadı. Klasör, ad ve uzantıyı kontrol et.

Bu sırayı izlediğinde önce ortamı, sonra dosya adını, en son klasör yolunu düzelterek hatanın kaynağını daha hızlı ayırt edebilirsin.

Bu içerik aradığın cevabı verdi mi?
Yanıtın, hangi yazıları geliştirmemiz gerektiğini anlamamıza yardımcı olur.
Bu içeriğin üretilmesinde yapay zeka araçlarından destek alınmıştır.

Bu konudan sonra ne okuyabilirsin?

Tüm yazılar

İlgili Eğitimler

Berk Keskin, yazılım geliştirici ve eğitmen
Yazar

Berk Keskin Kimdir?

Yazılıma 12 yaşında başladı; İzmir Ekonomi Üniversitesi'ni bölüm birincisi ve yüksek şeref öğrencisi olarak tamamladı. Bugün yalnızca eğitim vermekle kalmıyor, sektörde aktif olarak yazılım projeleri geliştiriyor ve gerçek dünya deneyimini birebir derslerine taşıyor. Ezberden uzak, mühendislik zihniyetini merkeze alan sürdürülebilir öğrenme sistemleri tasarlayarak sorgulayan, üreten ve problem çözebilen yeni nesil yazılımcılar yetiştiriyor.

Sektörel Deneyim & Projeler

  • Ticarify Entegrasyon Yazılım logosu CEO Ticarify Entegrasyon YazılımPazaryerleri ve e-ticaret sitelerine otomatik e-fatura kesimi, sipariş ve kargo takibi hizmetleri sunan e-Dönüşüm platformunun API mimarisini ve yazılım ekibini yönetmektedir.
  • Benim Düğünüm logosu CEO Benim DüğünümDijital etkinlik ve anı paylaşım platformu.
  • Siberdizayn logosu Yazılım Ekibi Lideri SiberdizaynYüksek anlık oyuncu trafiğine sahip oyun kontrol panelleri ve sunucu altyapıları geliştiren yazılım ekibine liderlik etmektedir.
  • MEDYOGRAFYA 360° Dijital Çözümler logosu Dijital Strateji Lideri MEDYOGRAFYA 360° Dijital ÇözümlerŞirketlerin dijital çözümlerde uzun vadede nasıl ilerlemesi gerektiği ve dijital dönüşüm süreçlerinin yönetilmesine destek olmaktadır.
  • İzmir Ekonomi Üniversitesi logosu Danışma Kurulu Üyesi İzmir Ekonomi ÜniversitesiMezun olduğu üniversitesinde, Bilgisayar Programcılığı bölümünün akademik müfredatını güncel sektör ihtiyaçlarına göre şekillendirmek adına Danışma Kurulu'nda görev almaktadır.
WhatsApp Hemen Ara