Python’da dosya işlemleri, programlarınızın veri depolaması ve okuması için kullanılır. Dosya işlemleri, Python’un güçlü ve esnek dosya işleme yetenekleri sayesinde oldukça kolaydır. Bu ders boyunca, Python’da dosya oluşturma, dosya okuma, dosyaya yazma ve dosyaya ekleme gibi temel dosya işlemlerini öğreneceğiz.

İçerik

  1. Dosya Oluşturma ve Yazma:
    • Dosya açma (open() fonksiyonu)
    • Dosya modları (okuma, yazma, ekleme)
    • Dosyaya yazma (write() metodu)
    • Dosya kapatma (close() metodu)
  2. Dosya Okuma:
    • Dosya okuma (read() metodu)
    • Dosya okuma modları (tüm dosya, belirli karakter sayısı, satır satır)
  3. Dosyaya Ekleme:
    • Dosya açma (ekleme modu)
    • Dosyaya ekleme (write() metodu)

Bu temel başlıklar altında Python’da dosya işlemlerini adım adım öğreneceğiz. Başlayalım!

1. Dosya Oluşturma ve Yazma

a) Dosya Açma (open() fonksiyonu): Dosyaları işlemek için Python’da open() fonksiyonu kullanılır. Bu fonksiyon, dosyayı belirtilen modda açar ve dosya nesnesini döndürür. Temel kullanım şu şekildedir:

dosya = open("dosya_adı", "mod")
  • "dosya_adı": Dosyanın adı veya yolu.
  • "mod": Dosyanın açılma modu. En sık kullanılanlar "r" (okuma), "w" (yazma), "a" (ekleme) modlarıdır.

b) Dosya Modları (Okuma, Yazma, Ekleme): Dosyayı açarken kullanılan modlar, dosya üzerinde yapılacak işlemi belirtir. En yaygın kullanılan modlar şunlardır:

  • "r": Dosyayı okuma modunda açar. (varsayılan)
  • "w": Dosyayı yazma modunda açar. Dosya zaten varsa, dosyanın içeriğini siler ve yeniden baştan yazar.
  • "a": Dosyayı ekleme modunda açar. Dosya yoksa oluşturur. Dosya zaten varsa, mevcut içeriğin sonuna ekler.

c) Dosyaya Yazma (write() metodu): Dosyaya veri yazmak için write() metodu kullanılır. Dosya yazma modunda açılmışsa, write() metodu dosyanın sonuna belirtilen veriyi yazar. Örnek:

dosya = open("dosya.txt", "w")
dosya.write("Örnek dosya içeriği")
dosya.close()

Yukarıdaki kod, "dosya.txt" adında bir dosya oluşturur ve içine “Örnek dosya içeriği” metnini yazar.

d) Dosya Kapatma (close() metodu): Dosya işlemleri bittikten sonra dosyanın kapatılması önemlidir. Dosya kapatılmazsa, dosya kaynakları işletim sistemi tarafından serbest bırakılmaz. Dosya kapatma için close() metodu kullanılır:

dosya = open("dosya.txt", "w")
# Dosyaya yazma işlemi yapılır
dosya.close()  # Dosya kapatılır

Yukarıdaki örnekte, dosya yazma işlemi yapıldıktan sonra close() metodu ile dosya kapatılır.

2. Dosya Okuma

a) Dosya Okuma (read() metodu): Dosya içeriğini okumak için Python’da read() metodu kullanılır. Bu metot, dosyanın tamamını veya belirli bir miktar veriyi okur. Temel kullanım şu şekildedir:

dosya = open("dosya_adı", "r")
icerik = dosya.read()
print(icerik)
dosya.close()

Yukarıdaki kod, “dosya_adı” adlı dosyayı okur ve içeriğini icerik değişkenine atar. Sonra içeriği ekrana yazdırır ve dosyayı kapatır.

b) Dosya Okuma Modları (Tüm Dosya, Belirli Karakter Sayısı, Satır Satır): Dosya okuma modları, dosyanın içeriğini nasıl okuyacağınızı belirtir. En yaygın kullanılan modlar şunlardır:

  • Tüm Dosya Okuma: Dosyanın tamamını okumak için read() metodu kullanılır. Bu, dosyanın içeriğini tek bir string olarak okur.
dosya = open("dosya.txt", "r")
icerik = dosya.read()
print(icerik)
dosya.close()
  • Belirli Karakter Sayısı Okuma: Belirli bir karakter sayısı okumak için read(n) metodu kullanılır. Bu, dosyanın ilk n karakterini okur.
dosya = open("dosya.txt", "r")
icerik = dosya.read(10)  # İlk 10 karakteri okur
print(icerik)
dosya.close()
  • Satır Satır Okuma: Dosyanın her bir satırını okumak için readline() veya readlines() metotları kullanılır.

readline(): Dosyanın bir sonraki satırını okur.

dosya = open("dosya.txt", "r")
satir1 = dosya.readline()  # Birinci satırı okur
print(satir1)
satir2 = dosya.readline()  # İkinci satırı okur
print(satir2)
dosya.close()

readlines(): Dosyanın tüm satırlarını bir liste olarak okur.

dosya = open("dosya.txt", "r")
satirlar = dosya.readlines()  # Tüm satırları okur
for satir in satirlar:
    print(satir)
dosya.close()

3. Dosya Ekleme

a) Dosya Açma (Ekleme Modu):

Dosyaya ekleme yapmak için dosyayı “a” (append) modunda açmalısınız. Bu mod, dosyanın sonuna yeni verilerin eklenmesine izin verir. Aşağıdaki gibi kullanılır:

dosya = open("dosya_adı", "a")

Yukarıdaki kod, “dosya.txt” adlı dosyayı ekleme modunda açar.

b) Dosyaya Ekleme (write() metodu): Dosyaya veri eklemek için write() metodu kullanılır. Bu, dosyanın sonuna belirtilen veriyi ekler. Örneğin:

dosya = open("dosya.txt", "a")
dosya.write("Yeni veri")
dosya.close()

Yukarıdaki kod, “dosya.txt” adlı dosyanın sonuna “Yeni veri” metnini ekler.

Dosya İşlemleri Uygulaması

Aşağıdaki Python programı, kullanıcının dosya işlemlerini gerçekleştirebileceği bir arayüz sunan bir uygulamadır. Bu uygulama, dosya oluşturma, dosya okuma, dosyaya yazma ve dosyaya ekleme gibi işlemleri gerçekleştirmek için kullanılabilir.

Bu uygulama, kullanıcıya dört farklı seçenek sunar:

  1. Dosya Oluşturma: Kullanıcı bu seçeneği seçerek bir dosya oluşturabilir. Program, kullanıcıdan dosya adını ve içeriğini alır ve bu bilgilerle yeni bir dosya oluşturur.
  2. Dosya Okuma: Kullanıcı bu seçeneği seçerek bir dosyayı okuyabilir. Program, kullanıcıdan okunacak dosyanın adını alır ve dosyanın içeriğini ekrana yazdırır.
  3. Dosyaya Yazma: Kullanıcı bu seçeneği seçerek bir dosyaya yazabilir. Program, kullanıcıdan dosya adını ve içeriği alır ve bu bilgilerle belirtilen dosyaya yazma işlemi gerçekleştirir.
  4. Dosyaya Ekleme: Kullanıcı bu seçeneği seçerek bir dosyaya eklemeler yapabilir. Program, kullanıcıdan dosya adını ve eklenecek içeriği alır ve bu bilgilerle belirtilen dosyaya ekleme işlemi gerçekleştirir.

Kullanıcı herhangi bir işlemi seçtikten sonra, program gerekli bilgileri alır ve seçilen işlemi gerçekleştirir. İşlem tamamlandığında, kullanıcıya işlemin başarıyla gerçekleştirildiğine dair bir mesaj gösterilir.

Bu uygulama, dosya işlemlerini yapmak için kullanımı kolay bir arayüz sağlar ve temel dosya işlemlerini gerçekleştirmek için gereken işlevselliği sunar.

def dosya_olustur():
    dosya_adi = input("Dosya adını girin: ")
    icerik = input("Dosya içeriğini girin: ")

    with open(dosya_adi, "w") as dosya:
        dosya.write(icerik)

    print(f"{dosya_adi} adlı dosya oluşturuldu ve içeriği yazıldı.")


def dosya_oku():
    dosya_adi = input("Okunacak dosya adını girin: ")

    try:
        with open(dosya_adi, "r") as dosya:
            icerik = dosya.read()
            print(f"\n{dosya_adi} dosyasının içeriği:")
            print(icerik)
    except FileNotFoundError:
        print("Belirtilen dosya bulunamadı.")


def dosyaya_yaz():
    dosya_adi = input("Yazılacak dosya adını girin: ")
    icerik = input("Dosyaya yazılacak içeriği girin: ")

    with open(dosya_adi, "w") as dosya:
        dosya.write(icerik)

    print(f"{dosya_adi} dosyasına yeni içerik yazıldı.")


def dosyaya_ekle():
    dosya_adi = input("Eklenecek dosya adını girin: ")
    icerik = input("Dosyaya eklenecek içeriği girin: ")

    with open(dosya_adi, "a") as dosya:
        dosya.write(icerik)

    print(f"{dosya_adi} dosyasına yeni içerik eklendi.")


def main():
    print("1. Dosya Oluşturma")
    print("2. Dosya Okuma")
    print("3. Dosyaya Yazma")
    print("4. Dosyaya Ekleme")

    secim = input("Yapmak istediğiniz işlemi seçin (1/2/3/4): ")

    if secim == "1":
        dosya_olustur()
    elif secim == "2":
        dosya_oku()
    elif secim == "3":
        dosyaya_yaz()
    elif secim == "4":
        dosyaya_ekle()
    else:
        print("Geçersiz seçim.")


if __name__ == "__main__":
    main()

Uygulamanın python dosyasını indirmek için tıklayınız.