Python’da Dosya İşleme: Okuma, Yazma ve Yönetim
Python, dosya işlemleri için güçlü ve kullanımı kolay fonksiyonlar sunar. Bu makalede, Python’da dosyaları nasıl okuyup yazacağınızı, farklı dosya modlarını nasıl kullanacağınızı ve olası hatalarla nasıl başa çıkacağınızı adım adım öğreneceksiniz. Öncelikle, dosya işlemlerinin temelini oluşturan open() fonksiyonuna bakalım.
Dosya Açma (open() fonksiyonu)
Bir dosyayı işlemeye başlamadan önce, onu open() fonksiyonu ile açmanız gerekir. Bu fonksiyon, dosya yolunu ve erişim modunu (örneğin, okuma, yazma veya ekleme) parametre olarak alır. Örneğin, “dosyam.txt” adlı bir dosyayı okuma modunda açmak için şu kodu kullanabilirsiniz:
dosya = open("dosyam.txt", "r")
Burada “r”, okuma modunu temsil eder. Diğer yaygın modlar şunlardır:
- “w”: Yazma modu (dosya varsa üzerine yazar, yoksa oluşturur)
- “a”: Ekleme modu (dosya varsa sonuna ekler, yoksa oluşturur)
- “x”: Oluşturma modu (dosya varsa hata verir, yoksa oluşturur)
- “b”: İkili dosyalar için (örneğin, resim veya ses dosyaları)
- “+”: Okuma ve yazma modunu birleştirir (örneğin, “r+”, “w+”)
Önemli bir nokta, dosyayı kullandıktan sonra mutlaka close() metodu ile kapatmanızdır. Bu, kaynakları serbest bırakır ve veri kaybını önler. Ancak, daha güvenilir bir yöntem olan with bloğunu kullanmanızı öneririm:
with open("dosyam.txt", "r") as dosya:
icerik = dosya.read()
print(icerik)
Bu yöntem, dosyayı otomatik olarak kapatır, olası hataları önler. Ayrıca, daha temiz ve okunabilir bir kod yazmanıza yardımcı olur.
Dosya Okuma
Dosyayı açtıktan sonra, read(), readline(), veya readlines() metodlarını kullanarak içeriğini okuyabilirsiniz. read() metodu tüm dosyayı bir string olarak okurken, readline() metodu dosyadan satır satır okuma sağlar. readlines() ise tüm satırları bir liste halinde döndürür.
with open("dosyam.txt", "r") as dosya:
# Tüm dosyayı oku
tumIcerik = dosya.read()
print(tumIcerik)
dosya.seek(0) # imleci başa alalım
# Satır satır oku
satir = dosya.readline()
while satir:
print(satir, end="")
satir = dosya.readline()
dosya.seek(0) # imleci başa alalım
# Tüm satırları liste olarak oku
tumSatirlar = dosya.readlines()
for satir in tumSatirlar:
print(satir, end="")
Dosya Yazma
Dosyaya yazmak için “w” veya “a” modlarını kullanabilirsiniz. write() metodu, dosyaya string verileri yazar.
with open("yeni_dosya.txt", "w") as dosya:
dosya.write("Merhaba, yeni dosyaya yazıyorum!\n")
dosya.write("Bu ikinci satır.")
Hata Yönetimi
Dosya işlemleri sırasında hatalar meydana gelebilir (örneğin, dosya bulunamadı). try…except bloklarını kullanarak bu hataları yakalayabilir ve programın çökmesini önleyebilirsiniz.
try:
with open("olmayan_dosya.txt", "r") as dosya:
icerik = dosya.read()
except FileNotFoundError:
print("Dosya bulunamadı!")
except Exception as e:
print(f"Bir hata oluştu: {e}")
İleri Düzey Konular
Dosya işlemlerinde daha ileri konulara girmeden önce, fatihsoysal.com sitesindeki diğer Python makalelerimi inceleyebilirsiniz. Örneğin, CSV dosyalarını işlemek, JSON verileriyle çalışmak veya daha karmaşık dosya yapılarıyla başa çıkmak gibi konulara değinilmektedir.
Ayrıca, daha detaylı bilgi için Python’ın resmi dökümantasyonuna göz atabilirsiniz: Python Dosya Giriş/Çıkış Dökümantasyonu
Umarım bu makale, Python’da dosya işlemeyi anlamanıza yardımcı olmuştur. Herhangi bir sorunuz varsa, yorumlarda sormaktan çekinmeyin!
#Etiketler
Python, dosya işleme, file handling, okuma, yazma, dosya yönetimi, Python dosya okuma, Python dosya yazma, dosya açma, dosya kapama, hata yönetimi, open(), read(), write(), readline(), readlines(), with, try…except, FileNotFoundError