Merhaba dostlar.
Bugünkü makalede Python programlama dili ile temel dosya işlemlerini, yeni öğrenenler açısından basit düzeyde gerçekleştireceğiz.

Programlama ile uğraşıyorsanız, er yada geç uğraşacağınız şeyden biri de dosyalardır. Dosyalar içerisinde yapmak isteyeceğiniz işlemlerdir. Bir dosya içerisine veri yazmak veya okumak olabilir bunlar. Bunun için “IO” (input and output) bileşenini kullanmanız gerekmektedir. Bir dosya ile bağlantı kurmak için önce open() fonksiyonunu kullanacağız. Python ile hadi kodlayalım!

dosya = open("yazi.txt", "w")

Yukarıdaki örnekte çalıştığınız dizin üzerinde “yazi.txt” dosyası ile bağlantıyı dosya değişkenine aktararak bağlantısını gerçekleştiriyoruz. Eğer çalıştığınız dizin üzerinde “yazi.txt” diye bir dosya yoksa yeni bir tane oluşturacaktır. Bunun sebebi ise IO bileşeni içerisindeki tanımlanmış mode’tur. Yukarıda “w” yazdığımız yer, aslında bizim tanımladığımız bir mode. Dosya içerisine yazı yazabileceğimizi belirtir.

Modlardan genel olarak bahsedelim biraz. Aslında mode, bir dosya ile yapacağımız işlemden önce erişim tanımlamaktır. Örneğin bir dosyayı sadece okuma işlemleri için modunu “r” yapmamız (read/okuma) yeterlidir. Bu sayede ilgili dosya ile sadece okuma işlemi yapacağımızı belirtmiş oluruz. Doğal olarak okuma modunda açtığımız için, üzerine yazma gibi bir durumumuz söz konusu değildir. Biraz onlardan ve özelliklerinden bahsedelim bahsedelim bu esnada.

Mode Tanım & Açıklama
“r” Read/Okumak anlamına gelir. Bu Mode ile sadece okuma işlemleri yapılır. Eğer böyle bir mode tanımlamış ve ileriki kodunuzda yazma işlemi yapmaya çalıştığınızda hata alırsınız.

Eğer belirttiğiniz dizinde dosya yok ise, hata alırsınız.

“w” Write/Yazmak anlamına gelir. Bu mode ile yazma işlemi yapılır. Eğer belirttiğiniz dizinde dosya yok ise, yeni dosya yaratır.

Eğer belirttiğiniz dizinde dosya var ise önce içindekini siler, ardından tekrardan yeni dosya yaratır.

Örneğin a.txt dosyası içerisinde “Merhaba” yazıyor olsun. Yeni bir “Naber” satırı yazma işlemi gerçekleştirdiğinizde, dosyanız aşağıdaki gibi gözükür.

Naber

“a” Append/Eklemek anlamına gelir. Bu Mode ile mevcut olanın üzerine eklemeler yapar. Eğer belirttiğiniz dizinde dosya yok ise, yeni dosya yaratır.

Eğer belirttiğiniz dizinde dosya var ise dosya içerisindeki yazanlara bir hamlede bulunmaz, yazacağınız yeni içeriği dosyaya ilave eder.

Örneğin a.txt isminde bir dosyanız olsun içerisinde “Merhaba” yazıyor olsun. Siz “a” modunda bağlanıyorsanız ve dosya içerisine yeni bir “Naber” satırı yazma işlemi gerçekleştirdiğinizde, dosyanız aşağıdaki gibi gözükür.

Merhaba
Naber

Bu modlara ek olarak, “w+”, “a+” gibi tanımlarda vardır. Temel anlamda gittiğimiz için başka bir makalede bunlardan bahsedeceğim.

Şimdi Python ile yazi.txt diye bir dosya oluşturalım ve ardından “merhaba\nnaber” yazdıralım. Bildiğiniz üzere “\n” kaçış dizisi ile “naber” yazısının bir alt satıra inmesini sağlayacağız.

dosya = open("yazi.txt","w")
dosya.write("merhaba\nnaber")
dosya.close()

Yukarıdaki kod ile yazi.txt adında bir dosya oluşturuyoruz, tanımladığımız “w” mode ile. Ardından write() fonksiyonunu alt alta gelecek şekilde yazımızı yazdırıyoruz. Dosyaya girip, baktığınızda aşağıdaki gibi gözükecektir.

merhaba
naber

En sondaki close() fonksiyonu ise bu dosya ile işimizin bittiğini, mevcut bağlantının ise sonlandırılmasını belirtiyoruz.

Peki mevcut olan bu dosyayı nasıl okutturabiliriz?

dosya = open("yazi.txt","r")
icerik = dosya.read()
dosya.close()
print satir

Yukarıda fark ettiyseniz, “r” yani okuma modunda dosyaya bağlandım. Ardından icerik adındaki değişkene, read() fonksiyonunu kullanarak dosya içerisindeki tüm verileri aktardım, dosya bağlantısını sonlandırdım. Son satırda da icerik adındaki değişkenin içerisindekini ekrana yazdırdım. Karşınıza aşağıdaki sonuç çıkacaktır.

merhaba
naber

Son bir örnek daha yapalım, bu sefer “a” modunda olsun yani mevcut olanın üzerine eklemeler yapalım “Append” ile.

dosya = open("yazi.txt","a")
dosya.write("iyi senden naber?")
dosya.close()

Bu sefer modu “a” yaptık ve dosya içerisine “iyi senden naber?” yazdık. Ardından mevcut bağlantıyı sonlandırdık.

Peki dosya içerisine girdiğimizde ne görmüş olacağız, ona da bakalım dilerseniz. Aşağıdaki gibi veriler gösterilecektir.

merhaba
naberiyi senden naber?

“naber” ve “iyi senden naber?” neden yanyana oldu? Çünkü kaçış dizisi veya boşluk kullanmadığımız için böyle bir şey gerçekleşti. Yukarıda kaçış dizisini hatırlamışsınızdır “\n” şeklindeydi.

Burası önemli! Çünkü buradan bir sonuç daha çıkarabiliriz. Demek ki write() fonksiyonu satır satır yazmıyor. İmlecin son durduğu yerden yazmaya başlıyor demektir. İpucu isterseniz, alt satıra geçmek için “\n” kaçış dizilerini kullanabiliriz.

Bir sonraki makalede görüşmek dileğiyle.

K. YILMAZ

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir