Bu öğretici, Python’da dosya işleme hakkında kapsamlı bir kılavuz sunmaktadır. Dosyalar, kalıcı veri depolama ve alma için çok önemlidir ve programlarınızın çalışma zamanlarının ötesinde verilerle etkileşim kurmasını sağlar. Dosya açma ve kapatmadan okuma, yazma, yeniden adlandırma ve silmeye kadar temel dosya işlemlerini ele alacağız. Ayrıca hata işleme ve verimli dosya yönetimi için en iyi uygulamaları inceleyeceğiz.
İçerik Tablosu:
- Dosya Açma
- Dosya Nesneleri ve Bağlam Yöneticileri
- Dosyalara Yazma
- Dosyalardan Okuma
- Dosya Sistemi İşlemleri: Yeniden Adlandırma ve Silme
- İstisnaları Ele Alma
1. Dosya Açma
open()
fonksiyonu, Python’da dosya etkileşiminin temel taşıdır. Birincil bağımsız değişkenler olarak dosya adını (bir dize) ve bir modu alır. Mod, dosyanın nasıl erişileceğini belirler (okuma, yazma, ekleme vb.).
Yaygın modlar şunlardır:
'r'
: Okuma (varsayılan). Okuma için açar. Dosya yoksa hata verir.'w'
: Yazma. Yazma için açar. Dosya varsa üzerine yazar; yoksa oluşturur.'a'
: Ekleme. Yazma için açar. Dosya varsa verileri sonuna ekler; yoksa oluşturur.'x'
: Özel oluşturma. Yeni bir dosya oluşturur. Dosya zaten varsa hata verir.'b'
: İkili mod. Metin dışı dosyalar için (resimler, yürütülebilir dosyalar). Diğer modlarla birleştirilebilir (örneğin,'rb'
,'wb'
).'t'
: Metin modu (varsayılan). Metin dosyaları için.
# Yazma için bir dosya açma
file = open("my_file.txt", "w")
# Okuma için bir dosya açma
file = open("my_file.txt", "r")
# İkili modda okuma için bir dosya açma
file = open("image.jpg", "rb")
2. Dosya Nesneleri ve Bağlam Yöneticileri
open()
, dosya etkileşimi için yöntemler sağlayan bir dosya nesnesi döndürür. Çok önemli bir en iyi uygulama, hata oluşsa bile dosyaların otomatik olarak kapatılmasını sağlamak için bağlam yöneticileri (with
deyimi) kullanmaktır:
with open("my_file.txt", "w") as file:
file.write("Bu biraz metin.n") # Bu bloktan sonra dosya otomatik olarak kapanır
with open("my_file.txt", "r") as file:
icerik = file.read()
print(icerik)
3. Dosyalara Yazma
write()
yöntemi, dosyaya bir dize yazar. Birden çok satır yazmak için yeni satırlar için n
kullanın.
with open("my_file.txt", "w") as file:
file.write("Satır 1n")
file.write("Satır 2n")
4. Dosyalardan Okuma
Birkaç yöntem dosya verilerini okur:
read()
: Tüm dosya içeriğini tek bir dizeye okur.readline()
: Tek bir satır okur.readlines()
: Tüm satırları bir dize listesine okur.- Yineleme: Satırları tek tek okumak için doğrudan bir dosya nesnesi üzerinde yineleyebilirsiniz.
with open("my_file.txt", "r") as file:
icerik = file.read()
print(icerik)
file.seek(0) # Dosya işaretçisini sıfırla
satir = file.readline()
print(satir)
file.seek(0) # Dosya işaretçisini sıfırla
satirlar = file.readlines()
print(satirlar)
file.seek(0) # Dosya işaretçisini sıfırla
for satir in file:
print(satir, end="") #end="" fazladan yeni satırı önler
5. Dosya Sistemi İşlemleri: Yeniden Adlandırma ve Silme
os
modülü, dosya sistemi manipülasyonu için fonksiyonlar sağlar:
import os
# Bir dosyayı yeniden adlandırma
os.rename("my_file.txt", "new_file.txt")
# Bir dosyayı silme
os.remove("new_file.txt")
6. İstisnaları Ele Alma
Dosyalarla çalışırken olası istisnaları (FileNotFoundError
, IOError
vb.) her zaman ele alın:
try:
with open("my_file.txt", "r") as file:
# ... dosya işlemleri ...
except FileNotFoundError:
print("Dosya bulunamadı.")
except IOError as e:
print(f"Bir IO hatası oluştu: {e}")