Dosya İşlemleri
Bu yazımda dosyalar üzerinde işlemlerin nasıl yapılacağını inceleyeceğiz. Python’da dosyalar üzerinde işlem yaparken open() fonksiyonundan yararlanacağız. Hazırsanız başlayalım:
Dosya Oluşturmak
Yukarıda bahsettiğimiz gibi open() fonksiyonunu kullanırız.
f = open(dosyaadi, kip)
open() fonksiyonu dosya adı ve kip dışında başka parametrelerde alır. Konumuzun ilerleyen kısımlarında bunlardan bahsedeceğim.
Örneğin times isminde bir dosyayı yazma kipinde açmak için şu yolu izleriz:
times_dosyasi = open("times_dosyasi.txt", "w")
Buradaki times_dosyası.txt dosyamızın ismini ‘w’ harfi ise bu dosyanın yazma kipinde açıldığını belirtmektedir. Burada dikkat etmemiz gereken, dosya adını dizin belirtmeden yazarsanız o dosya, o an hangi dizin altında iseniz orada oluşturulacaktır.
Dosyaya Yazmak
Bir dosyayı, yukarıdaki biçimde oluşturuyoruz. Peki bu dosyayı yazmak için nasıl bir yol izleyeceğiz? Python’da açılan bir dosyayı yazmak için write() fonksiyonundan faydalarınız. Örneğimizi inceleyelim:
td = open("times_dosyasi.txt", "w")
td = write("28.12.2016 - 19:05")
td.close()
Burada dosyayı yazma kipinde açtıktan sonra write fonksiyonu ile bilgiyi dosyaya yazdık ve close metodu ile kapattık.
Dosyayı w kipinde açıp veriyi yazdıktan sonra tekrar w kipi ile veri yazmak istersek daha önceki yazdığımız verilerin silindiğini bilmenizde fayda var.
Dosya Okumak
Dosya okumak için r harfini kullanırız. Örnek üzerinden gidelim:
haberler = open("haberler.txt")
print(haberler.read())
“r” kipiyle açtığımız bir dosyayı okumak için ise read(), readline() ve readlines() adlı üç farklı metottan yararlanırız. Örneğimizde r harfini kullanmadığımızı fark etmiş olabilirsiniz. Eğer bir dosyayı okuma kipinde açacaksanız, r harfini belirtmenize gerek yoktur.
Bir dosyayı otomatikman kapatmak isterseniz diğer derslerimizde bahsettiğimiz with deyimini kullanırız.
with open("dosyaadi", "r") as dosya:
print(dosya.read())
Dosyaya Erişme Kipleri (Modları)
KipAçıklama”r”bu kip dosyayı okuma yetkisiyle açar.”w”bu kip dosyayı yazma yetkisiyle açar.”a”bu kipte açtığınız bir dosyaya eklediğiniz veriler varolan verilere ilave edilir.”x”bu kip belirttiğiniz isimde bir dosya disk üzerinde varsa, python varolan dosyayı silmek yerine size bir hata mesajı gösterir.
temel olarak kipler bunlardır. Dosyalara erişmek için kullanılan kipler hakkında daha fazla bilgi edinmek isterseniz web üzerinden araştırabilirsiniz.
Dosyaların Metodları ve Nitelikleri
Dosya üzerindeki işlemlerden yukarıda bahsettik. Dosyalarında tıpkı listeler, diziler, sözlükler gibi metotları vardır. Bu kısımda bunları inceleyeceğiz:
closed Niteliği
Bir dosyanın durumu hakkında bilgi almak için kullanılır. Dosya kapalıysa True açıksa False değerini döndürür.
dosya.close()
readable() Metodu
Metot, dosyanın okuma yetkisine sahip olup olmadığını sorgulamak için kullanılır. Eğer dosya okunabilir bir kipte açılmışsa bize True değerini döndürür. Dosya yazma kipinde açılmışsa False değeri dönecektir.
writable() Metodu
Metot, dosyanın yazma yetkisine sahip olup olmadığını sorgulamak için kullanılır.
truncate() Metodu
Önemli metotlardan birisidir. Bu metodla dosyalarımızı istediğimiz boyuta getirebiliriz. İngilizce bir kelime olan truncate : budamak, kırpmak anlamına gelmektedir. Kullanımı şu şekildedir:
with open("gelir.txt", "r+") as g:
g.truncate()
Bu komut, dosyanın bütün içeriğini silecektir. Yani bu kod ‘w’ kipinde açılmış gibi etki yapacaktır. truncate metotuna değer verirsek yani 100 değeri verdiğimizi kabul edelim. Dosya boyutu 100 bayt olacaktır. Yani 100 byte üzerindeki veriler silinecektir.
mode Niteliği
Nitelik bize dosyanın hangi kipte açıldığını verir:
f = open("gider.txt")
f.mode
Cıktı : 'w'
encoding Niteliği
Dosyanın hangi dil kodlaması ile kodlandığını söyler:
g.encoding
'cp1254' #Windows
gördüğünüz gibi dosyalar üzerinde işlem yapmak Python’da bu kadar basit.