Python Dosya İşlemleri (File Handling)
Python dosya işlemleri, dosya oluşturmak, okumak, güncellemek ve silmek şeklinde özetlenebilir. Dosya işlemleri özellikle web uygulamaları için oldukça önemlidir.
Python Dosya İşlemleri
Pek çok programlama dili için dosya işleme oldukça önemlidir ve benzer şekilde Python da dosyaları oluşturmak, okumak, güncellemek ve silmek için çeşitli işlevlere sahiptir. Bu işlevlerin her biri alt başlıklar halinde derlenmiştir:
Python Dosya Açma
Python’da dosya açmak için İngilizcede açmak anlamına gelen open() fonksiyonu kullanılır. Bu fonksiyon ile kullanılan iki parametre vardır:
- dosya adı
- dosya modu
Bir dosyayı açmak için ise dört farklı mode yani yöntem vardır. Bunlar sırasıyla aşağıdaki gibidir:
- “r” –> Read–Okuma, varsayılan değerdir, dosyayı okumak için açar. (Dosya yoksa hata verir.)
- “a” –> Append–Ekleme, dosyayı veri eklemek için açar (dosya yoksa yeni bir tane oluşturur.)
- “w” –> Write–Yazma dosyayı yazmak için açar (dosya yoksa yeni bir tane oluşturur.)
- “x” –> Create –Oluşturma (zaten bir dosya varsa hata verir.)
Ek olarak, dosyanın binary (İkili) mod mu yoksa metin (text) modu olarak mı işleneceğini belirtmeye yarayan anahtarlar bulunur:
- “t” – Metin (varsayılan değerdir.)
- “b” – Binary Binary mod (resim gibi dosyaları ikili açmak gerekebilir.)
Aşağıdak open() fonksiyonun kullanımı gösterilmiştir:
1 2 3 |
myFile = open("beniOku.txt") |
Dosya okuması için “r” ve metin için “t” default yani varsayılan değerler olduğundan, bunları belirtmeye gerek yoktur. Bu yüzden yukarıdaki kod file1 = open(“beniOku.txt”, “rt”) ile aynıdır. Ancak dosyanın var olduğundan emin olunmalı aksi takdirde hata alınır.
Python Dosya Okuma
Açılacak dosyanın yazılacak uygulama ile aynı dizinde olduğundan emin olduktan sonra bir dosya oluşturalım. İçine de loremipsum olarak bilinen taklit yazı bloğundan 25 kelimeyi ekleyelim:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin sollicitudin mattis pulvinar. Donec eu arcu ultrices, hendrerit eros vel, malesuada orci. Proin gravida dolor turpis.
Ardından da dosyamızı “beniOku.txt” olarak kaydedelim. Ardından da dosyayı açmak için open () fonksiyonunu kullanalım:
1 2 3 |
myFile = open("beniOku.txt", "r") print(myFile.read()) |
Eğer ki dosya farklı bir dizinde ise dosyan yolunun belirtilmesi gerekecektir:
1 2 3 |
myFile = open(""D:\\Belgeler\beniOku.txt", "r") print(myFile.read()) |
Python’da Dosyanın Sadece Bir Bölümünü Okuma
Python’da read () yöntemi varsayılan olarak tüm metni döndürmektedir. Ancak belirtilen miktardaki karakter sayısı da döndürülebilir.
Aşağıdaki program beniOku dosyasından 10 karakter döndürülecek şekilde yazılmıştır.
1 2 3 |
myFile = open("beniOku.txt", "r") print(myFile.read(10)) |
Python’da Dosyayı Satır Satır Okuma
Python’da dosyadan bir satır okutabilmek için İngilizcede okuma satırı anlamına gelen readline () fonksiyonu kullanılır:
1 2 3 |
myFile = open("beniOku.txt", "r") print(myFile.readline) |
Eğer ki dosyanın satır satır okunmasını isteniyorsa readline () fonksiyonu birden fazla kullanabilir. Aşağıdaki örnekte readline() fonksiyonu üç kez çağrılarak ilk üç satırın okunması sağlanmıştır:
1 2 3 4 5 |
myFile = open("beniOku.txt", "r") print(myFile.readline) print(myFile.readline) print(myFile.readline) |
Pekala uzun dosyanın sonuna kadar satır satır okunması istenilebilir. Böylesi bir durumda tüm satırları tek tek okumak kolay olmayacağından for döngüsünden yararlanılır:
1 2 3 4 |
myFile = open("beniOku.txt", "r") for x in myFile: print(x) |
Python’da Dosyayı Kapatma
İyi bir uygulama gerekliliği olarak eğer dosya ile işimiz bittiyse kapatmalıyız. Dosyayı kapatmak için close () fonksiyonu kullanılır:
1 2 3 4 |
myFile = open("beniOku.txt", "r") print(myFile.readline) myFile.close () |
Python Dosyaya Yazma
Mevcut bir dosyaya yazmak yani yeni veriler eklemek için open () fonksiyonuna aşağıdaki parametrelerden biri eklenmelidir:
- “a” –> ekle (append) dosyanın sonuna ekler
- “w” –> yaz (write) mevcut içeriğin üzerine yazar.
İlk olarak “a” ile dosyayı açıp içerik ekleyelim:
1 2 3 4 5 6 7 8 9 |
myFile = open("beniOku.txt", "a") myFile.write("Artık dosyada yeni eklenmiş içerikler var!") myFile.close () #ekledikten sonra dosyayı açın ve okuyun: myFile = open("beniOku.txt", "r") print(myFile.read()) |
Ve son olarak da “w” ile dosyayı açıp içeriğin üzerine yazalım:
1 2 3 4 5 6 7 8 9 |
myFile = open("beniOku.txt", "w") myFile.write("Bu sefer dosyadaki verilerin üzerine yazdım") myFile.close () #üzerine yazdıktan sonra dosyayı açın ve okuyun: myFile = open("beniOku.txt", "r") print(myFile.read()) |
Python Yeni Dosya Oluşturma
Aşağıdaki parametrelerden biri open () fonksiyonunu kullanarak yeni bir dosya oluşturulabilir:
- “x” –> create – oluştur, bir dosya oluşturur. (eğer dosya varsa bir hata döndürür)
- “a” –> append – ekle, belirtilen dosya yoksa bir dosya oluşturur.
- “w” –> write – yaz, belirtilen dosya yoksa bir dosya oluşturur.
Aşağıdaki kod satırı ile yeni boş bir dosya oluşturuldu:
1 |
myFile = open("myfile.txt", "x") |
Eğer bu dosya mevcut değilse yeni bir dosya oluşturmak için:
1 |
myFile = open("myfile.txt", "w") |
Python Dosyaları Silme
os modülünü içe aktararak os.remove(“dosya adı”) fonksiyonunu kullanabilir ve böylece dosyayı silebiliriz:
1 2 3 4 |
import os os.path.exists("beniOku.txt") |
Eğer dosya yoksa hata alınır bu yüzden hata almamak için if-else kullanabiliriz:
1 2 3 4 5 6 7 |
import os if os.path.exists("beniOku.txt"): os.remove("beniOku.txt") else: print("Dosya bulunamadı") |