Python'da dosyaya yazma işlemi, bir dosyaya veri ekleme veya var olan veriyi değiştirme amacıyla kullanılır. Bu işlemi gerçekleştirmek için öncelikle dosyanın yazma veya ekleme modunda açılması gerekir. Python, dosyaya yazmak için çeşitli modlar ve yöntemler sunar.
1. Dosya Yazma Modları
Dosyaya yazma işlemi için open()
fonksiyonunu kullanarak dosyayı yazma modunda açmanız gerekir. Kullanılabilecek bazı modlar şunlardır:
-
'w'
(write): Yazma modunda açar. Eğer dosya zaten varsa, içeriğini siler ve yeni baştan yazar. Dosya yoksa yeni bir dosya oluşturur. -
'a'
(append): Ekleme modunda açar. Mevcut dosyanın sonuna yeni veriler ekler. Dosya yoksa oluşturur. -
'x'
(exclusive creation): Dosya oluşturma modunda açar. Eğer dosya zaten varsa, hata verir. -
'b'
: İkili (binary) modda açar. Metin yerine ikili veri yazmak için kullanılır. -
't'
: Metin modunda açar (varsayılan mod).
2. Dosyaya Yazma Yöntemleri
Python'da dosyaya veri yazmak için iki temel yöntem vardır: write()
ve writelines()
.
write()
: Tek Satır veya Metin Yazma
write()
metodu, dosyaya bir string (metin) yazar. Eğer bir sayı veya başka bir veri türü yazmak isterseniz, önce string'e dönüştürmeniz gerekir.
with open("dosya.txt", "w") as dosya:
dosya.write("Merhaba Dünya!
") # Dosyaya metin yazılır
Bu örnekle dosya, içeriği silinerek yeniden yazılır ve içine "Merhaba Dünya!"
metni eklenir.
writelines()
: Birden Fazla Satır Yazma
writelines()
metodu, birden fazla satırı (veya string'i) liste ya da başka bir iterable yapıdan dosyaya yazar. writelines()
metodu, her satır için sonuna yeni satır karakteri (
) eklemez. Bunu manuel olarak eklemek gerekir.
satirlar = ["Python
", "Dosya
", "Yazma
"]
with open("dosya.txt", "w") as dosya:
dosya.writelines(satirlar) # Birden fazla satırı dosyaya yazar
3. Dosyaya Ekleme (Append) Modu
Eğer mevcut bir dosyanın içeriğini silmek istemiyorsanız, sadece sonuna veri eklemek için 'a'
(append) modunu kullanabilirsiniz.
with open("dosya.txt", "a") as dosya:
dosya.write("Yeni satır ekliyorum.
") # Dosyanın sonuna ekler
Bu modda dosya içeriği silinmez; eklenen veriler dosyanın sonuna eklenir.
4. İkili (Binary) Dosya Yazma
Eğer bir dosyaya ikili (binary) veri yazmanız gerekiyorsa, 'b'
modunu kullanarak dosyayı açmanız gerekir. Örneğin, bir görüntü dosyasını ikili olarak yazmak için:
with open("resim.jpg", "rb") as kaynak_dosya:
veri = kaynak_dosya.read()
with open("kopya_resim.jpg", "wb") as hedef_dosya:
hedef_dosya.write(veri) # İkili veri dosyaya yazılır
5. Örnek: Kullanıcıdan Veri Alarak Dosyaya Yazma
Kullanıcıdan alınan verileri dosyaya yazmak için:
veri = input("Dosyaya yazmak istediğiniz metni girin: ")
with open("kullanici_verisi.txt", "w") as dosya:
dosya.write(veri + "
") # Kullanıcıdan alınan veriyi dosyaya yazar
Özet
-
'w'
(write): Dosyayı yazma modunda açar, içeriği siler ve yeni veri yazar. -
'a'
(append): Dosyanın sonuna veri eklemek için kullanılır. -
write()
: Tek bir string verisini dosyaya yazar. -
writelines()
: Birden fazla satırı liste halinde dosyaya yazar. -
with
bloğu: Dosyanın güvenli bir şekilde otomatik kapanmasını sağlar.
Dosyaya yazma işlemi, Python'da veri saklamak, raporlar oluşturmak veya çıktı üretmek için yaygın bir yöntemdir.