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
- r Okumak için bir dosya açın. (varsayılan)
- w 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
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.
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