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?

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 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.