Press "Enter" to skip to content

Python Dosya İşlemleri

Yaşar SAFALI 2

Python Dosya İşlemleri

Python dosya işlemlerini bu yazımızda inceleyeceğiz.Dosyalar programcıların çok kullandığı yapılardan biridir.Dosya geçmeden önce dosyalarda kullanılan kipleri inceleyeceğiz.Python Dosya İşlemleri

  • Okumak için bir dosya açın. (varsayılan)
  • Yazmak için bir dosya açın. Varsa, dosyayı yeniden oluşturur
  • a Dosyanın sonuna ekleme yapmak için dosyayı açmadan açın. Varsa yeni bir dosya oluşturur.
  • t Metin Modunda aç
  • Güncelleme için bir dosya aç (okuma ve yazma)(r+,w+)
  • b Dosyayı ikili modda aç

Python Dosya oluşturma

Dosya oluşturmaya geçmeden önce Python’da bir dosyanın var olup olmadığını,dosyanın dizin adresini ve o dosyanın silinmesini öğrenelim.Bunun için Python’da yer alan os modülünü kullanacağız.

Bir dosyanın var olup olmadığını kontrol edelim.

import  os
os.path.exists("yazilimhanem.txt")

Eğer dosya varsa True yok ise False dönderir.

Bir dosyayı silmek için

import os
os.remove("yazilimhanem.txt")

 

Dosyanın adresine erişelim.

import os
print(os.path.abspath("yazilimhanem.txt"))

Output:

C:\Users\**\PycharmProjects\***\yazilimhanem.txt

 

Python’da dosya oluşturulurken open() fonksyionu kullanılır.bu fonksiyon ilk parametre olarak dosya adını parametre olarak alır.(Tam dizin adresi de parametre olarak verilebilir.)İkinci parametre olarak ise dosya kipi alır.Kip belirtilememişse varsayılan olarak r kabul eder.Diğer parametreleride sırası geldikçe inceleyeceğiz.

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

veya

dosya=open("C://yazilimhanem.txt","w")

Belirtilen dizine oluşturur.Dikkat edilmesi gereken nokta taksim işaretleri(\) ters olarak kullanılmalıdır.(/) aksi halde kaçış işareti olarak algılanabilir.

Oluşturulan dosya kapatılırken

dosya.close()

komutu kullanılır.

with open() as degiskenadi

Dosyaları açmanın veya olusturmanın bir diğer yoluda with open() yöntemidir.Bu yöntemin normal yöntemden farkı dosyayı otomatik olarak kapatmasıdır.

kulanım şekli şu şekildedir.

with open("yazilimhanem.txt","r") as dosya:
    pass
    #dosya ile ilgili yapılacak işlemler

open() fonksiyonun önemli bir diğer parametresi ise dosyanın karakter kodlamasını belirten encoding parametresidir.Bu parametreye dosyanın karakter kodlamasının yapıldığı değer verilir.

with open("yazilimhanem.txt","r",encoding="utf-8") as dosya:
    pass
    #dosya ile ilgili yapılacak işlemler

 

Dosyaya Veri Yazmak:

Dosyalara veri yazarken dikkat edilmesi gereken nokta kipin w olduğu durumlardır.Çünkü bu kip var olan eski dosyayı siler yenisini oluşturur.Dosyalara veri yazabilmek için write() ve writelines() fonksiyonlarından yararlanılır.

write() fonksiyonu parametre olarak bir string alır.İkinci bir stringi parametre olarak veremezsiniz.Aldığı stringi dosyaya yazar.

writelines() fonksiyonu birden fazla stringi dosyaya yazmamızı sağlar.Kullanılırken stringler bir liste içerisinde fonksyiona verilir.

Dosyaya veri yazarken hem write() hemde writelines() fonksiyonu stringler arasına boşluk koymaz.

dosya=open("yazilimhanem.txt","w")
dosya.write("yasar")

dosya.writelines(["yazılım","hanem"])

dosya.close()

Yazılımhanem.txt içeriği

yasaryazılımhanem

Var olan bir dosyaya içerik eklemek için a kipi kullanılır.Bu kip sayesinde dosya yeniden
oluşturulmaz.Ekleme işlemi dosyanın sonundan gerçekleşir.

dosya=open("yazilimhanem.txt","a",encoding="UTF-8")
dosya.write(" Python\t")
dosya.writelines(["Dosya\t","İşlemleri\t"])
dosya.close()

Yazılımhanem.txt içeriği:

yasaryazılımhanem Python Dosya İşlemleri

Dosyalarda Okuma İşlemleri

Dosyalarda okuma yapabilmemiz için dosyanın r kipiyle açılması gerekir.Bu sayede dosya okuma moduna alınır.

Dosyalardan veri okumak için read(),readline() ve readlines() fonksiyonları kullanılır.

read() Fonksiyonu Dosyanın tamamını okumaya yarar.

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

Output:

YazilimHanem
Python Dersleri
Dosyalar Konusu

readline() Fonksiyonu Bu fonksiyon ile dosyadan bir tek satır okunur.Her kullanımında imleç bir alt satıra geçer.

dosya=open("yazilimhanem.txt","r")
icerik=dosya.readline()
icerik2=dosya.readline()
print(icerik)
print(icerik2)
dosya.close()

Output:

YazilimHanem

Python Dersleri

readlines() Fonksiyonu Bu fonksiyon dosyanın bütün satırlarını bir listeye atar.Dosyanın içeriğine erişmek artık bir listenin elemanına erişmek ile aynıdır.

dosya=open("yazilimhanem.txt","r")
icerik=dosya.readlines()
print(icerik)

for i in icerik:
    print(i)
dosya.close()

Output:

[‘YazilimHanem\n’, ‘Python Dersleri\n’, ‘Dosyalar Konusu’]
YazilimHanem

Python Dersleri

Dosyalar Konusu

Yukarıdaki örnekler incelendiğinde her satır arasında boşluklar oluşmuştur.Bunun iki nedeni vardır.İlk nedeni dosyadan okunan satırların sonuna alt satır(\n) kaçış işaretinin eklenmesidir.Diğer nedeni ise print() fonksyionu yazımızda bahsettiğimiz fonksiyonun yazma işleminden sonra alt satıra geçmesidir.Çözüm yöntemi print() fonksiyonunun  end parametresini vermektir.

dosya=open("yazilimhanem.txt","r")
icerik=dosya.readlines()


for i in icerik:
    print(i,end="")
dosya.close()

Output:

YazilimHanem
Python Dersleri
Dosyalar Konusu

 

Dosyalarda okuma yada yazma işlemi gerçekleştirirken her zaman dosyanın başından veya sonundan işlem yapamayabilirsiniz.Yani ihtiyacınız olan şey dosyanın belli bir kısmını okumak veya o kısıma ekleme yapmak olabilir.Bu gibi durumlarda kullanılması gereken iki fonksiyonu inceleyelim.

teel foksiyonu() dosya imlecinin hangi byte da (karakter) olduğunu belirtir.

seek fonksiyonu() ise dosya imlecini istenilen byte a getirmeye yarar.

Yukarıda belirttiğimiz iki fonksiyon sayesinde artık dosyanın istenilen yerine ekleme yapılabilir veya istenilen kısmı okunabilir.

Örneğin yazilimhanem.txt dosyası içerisinden sadece Python Dersleri ni okuyalım.

dosya=open("yazilimhanem.txt","r")
dosya.seek(14)
icerik=dosya.readline()
print(icerik,end="")
dosya.close()

Output:

Python Dersleri

Okuma fonksiyonlarına kaç bytelık okuma yapacağı belirtilerek de okuma işlemleri gerçekleşir.Örneğin Python derslerinin ilk 5 karakterini okuyalım.

dosya=open("yazilimhanem.txt","r")
dosya.seek(14)
icerik=dosya.readline(5)
print(icerik,end="")
dosya.close()

Output:

Pytho

 

Şimdi de Python Dersleri yazısından önce bir veri ekleyelim.Var olan dosyaya veri eklemek için dosyayı “r+” kipi ile açmalıyız.

dosya=open("yazilimhanem.txt","r+")
icerik=dosya.readlines()
icerik.insert(1,"Ekleme islemi Basarili\n")
dosya.seek(0)
dosya.writelines(icerik)
print(dosya.read())
dosya.close()

Output:

YazilimHanem
Ekleme islemi Basarili
Python Dersleri
Dosyalar Konusu

 

Dosyada istenilen bir yere ekleme işlemi yapabilmek için dosyanın içeriğini readlines() ile listeye alınabilir.Bundan sonraki aşama bir listenin istenilen indisine eleman ekleme ile aynıdır.Son olarak içerik eklenmiş liste dosyanın 0. byte ından itibaren dosyaya eklenmelidir.

Dosyalar ile ilgili temel işlemler bu kadardır.Bir sonraki yazımızda görüşmek dileğiyle. Python Dosya İşlemleri Python Dosya İşlemleri

 

  1. GFatma GFatma

    Merhaba benim yapmam gereken bir ödevim var ama bir türlü yapamadım bana yardımcı olmak ister misiniz? Teşekkürler.
    • Yazılım içinde navigasyonu sağlayacak bir menü.
    • Katalogdaki eserlerin listelenmesi.
    • Yeni eser girişi (Eser Adı, Yazar Adı, Tarih).
    • Eser adına, yazar adına ya da tarihe göre arama ve arama sonuçlarının listelenmesi.
    • Katalogdaki veriler TXT dosyasına yazılacak ve okunacaktır.

  2. Yaşar SAFALI Yaşar SAFALI

    Merhaba prensip olarak öğrenci arkadaşlarımıza sadece ödevlerinde yol gösterebiliyoruz.
    Öncelikle tasarımızı Tkinter veya Pyqt kullanarak kolayca tasarlayabilirsiniz.
    Daha sonra yapmanız gereken herhangi bir veri tabanı kullanıp sqlite,mysql vb.. temel olarak ekleme silme sorgularını çalıştırmanız.Dosyalara veri yazdırma işlemini dosyalar yazımızdan okuyabilirsiniz.
    İyi çalışmalar dilerim

Bir cevap yazın

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