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

Python Dosyası Satır Satır Nasıl Okunur?

python-dosyasi-satir-satir-nasil-okunur
Bu yazıda neler var?
  1. Dosyayı with open ve for döngüsüyle nasıl okursun?
  2. Boş satırları atlayıp satırları nasıl numaralandırırsın?
  3. Dosya bulunamazsa FileNotFoundError nasıl yönetilir?
  4. Satır satır okumayı nasıl pekiştirebilirsin?

Python dosyası satır satır nasıl okunur? Bir metin dosyasını with open("notlar.txt", "r", encoding="utf-8") as f: ile açıp for satir in f: döngüsüyle her satırı sırayla işleyebilirsin. Bu yöntem, dosyanın içeriğini belleğe tek seferde almak yerine satırları akış içinde okumaya yarar.

Satırları işlerken metnin başındaki ve sonundaki boşlukları temizleyebilir, boş satırları atlayabilir veya her satıra dosyadaki konumunu gösteren bir numara verebilirsin.

Dosyayı with open ve for döngüsüyle nasıl okursun?

Dosyayı with open ve for döngüsüyle nasıl okursun?

Python’da dosya okumak için open() işlevini with bloğuyla kullanmak temel ve güvenli bir yaklaşımdır. "r" dosyanın okuma modunda açılacağını, encoding="utf-8" ise Türkçe karakterler gibi metinlerin doğru yorumlanacağını belirtir.

with open("notlar.txt", "r", encoding="utf-8") as f:
    for satir in f:
        print(satir, end="")

for satir in f: satırı, dosyadaki her satırı sırayla satir değişkenine aktarır. print() içinde end="" kullanılması, satırın dosyadan gelen satır sonuna ek olarak ikinci kez alt satıra geçmesini önler.

with bloğu sona erdiğinde dosyanın kapatılması Python tarafından yönetilir. Böylece dosyayı ayrıca kapatmayı unutma riskin azalır. Temel sözdizimini adım adım çalışmak için ücretsiz Sıfırdan Temel Python video eğitimi de kullanılabilir.

Boş satırları atlayıp satırları nasıl numaralandırırsın?

Temizleme, boş satırları ayıklama ve numaralandırma işlemlerini aynı döngüde birleştirebilirsin. Önce notlar.txt dosyasının örnek içeriği şöyle olsun:

Python

Döngüler
  Dosya okuma  

Bu içeriği okuyan kodda strip() satırın başındaki ve sonundaki boşlukları temizler. Temizlenen satır boşsa continue döngünün o turunu atlar.

with open("notlar.txt", "r", encoding="utf-8") as f:
    for numara, satir in enumerate(f, start=1):
        satir = satir.strip()

        if not satir:
            continue

        print(f"{numara}. {satir}")

Beklenen çıktı:

1. Python
3. Döngüler
4. Dosya okuma

enumerate(f, start=1) dosyadaki gerçek satır konumlarını izler. Bu nedenle ikinci satır boş olduğu için atlanır, sonraki satırlar yine dosyadaki asıl numaralarıyla, yani 3 ve 4 olarak gösterilir. strip() sayesinde son satırdaki gereksiz baş ve son boşluklar da çıktıya taşınmaz.

Dosya bulunamazsa FileNotFoundError nasıl yönetilir?

Dosya bulunamazsa FileNotFoundError nasıl yönetilir?

Dosya bulunamadığında programın doğrudan durması yerine anlaşılır bir mesaj göstermesi için with open("notlar.txt", encoding="utf-8") as f: ve for satir in f: ile yaptığın okuma işlemini try ve except FileNotFoundError blokları içine alabilirsin.

try:
    with open("notlar.txt", encoding="utf-8") as f:
        for numara, satir in enumerate(f, start=1):
            satir = satir.strip()
            if satir:
                print(f"{numara}. {satir}")
except FileNotFoundError:
    print("Hata: notlar.txt dosyası bulunamadı.")

try bloğu, hata oluşabilecek dosya açma ve okuma işlemlerini kapsar. with open dosyayı UTF-8 kodlamasıyla açar ve işlem tamamlandığında dosyanın düzgün biçimde kapatılmasına yardımcı olur. enumerate satır numarası üretir, strip() kenar boşluklarını temizler, if satir ise boş satırların yazdırılmasını engeller.

Dosya ya da kullanılan yol bulunamazsa except FileNotFoundError çalışır. notlar.txt erişilebilir değilse beklenen çıktı şöyledir:

Hata: notlar.txt dosyası bulunamadı.

Bu mesajı görürsen dosya adının doğru yazıldığını ve dosyanın, kodda kullandığın ada veya yola göre erişilebilir olduğunu kontrol et. İşletim sistemine özgü bir klasör varsaymak yerine, kodda belirtilen konum ile dosyanın gerçek konumunu karşılaştırabilirsin.

Satır satır okumayı nasıl pekiştirebilirsin?

Konuyu pekiştirmek için küçük bir örnek dosya oluştur ve içine hem boş satır hem de kenar boşluğu içeren satırlar ekle. Örneğin dosyanın içeriği şöyle olabilir:

  İlk not

İkinci not  
  Üçüncü not

Dosyayı yukarıdaki kodla okuduğunda strip() kenar boşluklarını temizler, boş satırı atlar ve enumerate gerçek satır numaralarını korur. Bu nedenle beklenen çıktı şöyledir:

1. İlk not
3. İkinci not
4. Üçüncü not

Çıktıdaki numaraları dosyanın gerçek satırlarıyla karşılaştır. Ardından dosya adını geçici olarak değiştirerek FileNotFoundError durumunu dene ve programın anlaşılır hata mesajı verip vermediğini kontrol et. Bu çalışmayı kendi başına sürdürebilir, zorlandığın noktaları kişiye göre ele almak için birebir Python dersleri kapsamında destek almayı da değerlendirebilirsin.

Bu üç kontrolü tekrarladıkça Python’da dosya okuma kodunun hem normal çıktısını hem de hata durumlarını daha rahat değerlendirebilirsin.

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