Python Kod

  1. Anasayfa
  2. »
  3. Genel
  4. »
  5. Python Dosya Okuma

Python Dosya Okuma

admin admin - - 15 dk okuma süresi
76 0

Python programlama dilinde dosya okuma işlemi oldukça önemlidir. Özellikle büyük boyutlu dosyaları okuyup işlemek için kullanılır. Dosya okuma işlemi için open() fonksiyonu kullanılır. Bu fonksiyon dosyayı açmak için kullanılır ve iki parametre alır. İlk parametre dosyanın adı, ikinci parametre ise dosyanın açma şeklidir.

Dosya açma şekilleri arasında en çok kullanılanı ‘r’ modudur. Bu mod dosya okuma işlemleri için kullanılır. Dosyadan veri okuyabilmek için read() metodu kullanılır. Bu metot ile dosyadan okunan veriler string olarak döndürülür. Dosyadan sadece tek bir satır okumak istenirse readline() metodu kullanılır.

Dosyadaki tüm satırların okunup listeye aktarılması için readlines() metodu kullanılır. Dosya okuma işlemi bittikten sonra dosya kapatılmalıdır. Dosya kapatma işlemini otomatik olarak gerçekleştirmek için ise with bloğu kullanılır. Dosya okuma işlemi sırasında hata alınmaması için izinler doğru bir şekilde verilmelidir. Bunun yanı sıra, hata durumlarında programın çökmesini önlemek için try-except blokları da kullanılabilir.

open() Fonksiyonu

Python’da dosya okuma işlemi için kullanılan en temel fonksiyon open() fonksiyonudur. Okunacak dosya adı ve modu parametre olarak fonksiyona verilir. Mod parametresi, dosyanın okunma modunu belirler. Örneğin, ‘r’ parametresi okuma modunu ifade eder. Dosya okuma işlemi için aşağıdaki gibi kod kullanılabilir:

dosya = open('ornek.txt', 'r')

Burada ‘ornek.txt’, okunacak dosyanın adını, ‘r’ ise dosyanın okuma modunu ifade eder. Aynı dosya dokunulmazlık problemleri de başka adlarda gözlemlenmiştir.

open() fonksiyonu ayrıca encoding parametresi ile de kullanılabilir. Bu parametre, dosyanın karakter kodlamasını belirler. Varsayılan olarak encoding parametresi None değeri alır ve sistem varsayılan kodlamasını kullanır. Örneğin, ‘utf-8’ kodlaması kullanmak için aşağıdaki gibi bir kod kullanılabilir:

dosya = open('ornek.txt', 'r', encoding='utf-8')

open() fonksiyonunu kullanarak dosya okuma işlemi yaparken, dosyayı kapatmak da önemlidir. Dosya kapatma işlemi için close() metodu kullanılır. Ancak, bu yöntemle dosyaların kapatılmaması durumunda dokunulmazlık problemi yaşıyorsunuz. Bu nedenle, with bloğu kullanarak dosya açma işlemi gerçekleştirilebilir. Bu yöntem, dosya işlemlerinden sonra dosyanın kapatılmasını garanti eder. İşlem tamamlandığında, close() metodu otomatik olarak çağrılır. Aşağıdaki gibi bir örnek dosya açma işlemi gerçekleştirilebilir:

with open('ornek.txt', 'r', encoding='utf-8') as dosya:    print(dosya.read())

Bu kodda, ‘ornek.txt’ dosyası, ‘utf-8’ kodlaması ve okuma modu ile açılır. read() metodu ile dosyanın tüm içeriği okunur ve ekrana yazdırılır. Dosya okuma işlemi tamamlandığında with bloğu otomatik olarak kapanır.

read() Metodu

read() Metodu

Peki, bir dosyadaki verileri okumanın en kolay yolu nedir? Dosya okuma işlemi yapacak string bir değişken oluşturmak, dosyayı açmak, verileri okuyup değişkene atamak ve son olarak dosyayı kapatmak mümkündür. Ancak Python’da dosya okuma işlemlerini daha pratik bir şekilde yürütebilmek için read() metodu kullanılabilmektedir.

read() metodu, dosyadan belirtilen miktar kadar veri okur ve bu verileri bir string olarak döndürür. Eğer okunacak verinin miktarı belirtilmezse, metot tüm dosyayı okur ve dosyanın tamamını bir string olarak döndürür. Örneğin:

Dosya İçeriği Python Kodu Çıktı
Merhaba Dünya! dosya = open(“dosya.txt”, “r”)
veri = dosya.read()
dosya.close()
print(veri)
Merhaba Dünya!

Yukarıdaki örnekte dosya.txt adlı bir dosya açılmış, tüm veriler read() metoduyla okunmuş, değişkene atılmış ve son olarak dosya kapatılmıştır.

readline() Metodu

Python’da dosya okuma işlemi için kullanılabilecek metodlardan bir diğeri ise readline() metodu. Bu metod, okunacak dosyadan yalnızca bir satır okuması için kullanılır. read() metodunun alternatifi olarak kullanılabilen readline() metodu, bir dosyanın sadece ilk satırını okumak için de kullanılabilir. Metodun kullanımı oldukça basit olup, aşağıdaki şekilde tanımlanır:

Metod Açıklama
readline() Dosyanın bir satırını okuyarak string olarak döndürür.

Örnek olarak, elimizde bir test.txt adında bir dosya olduğunu varsayalım. Dosyanın içeriği aşağıdaki gibidir:

  • Satır 1
  • Satır 2
  • Satır 3

Bu dosyanın içeriğindeki ilk satırı okumak için readline() metodunu kullanabiliriz:

  with open('test.txt', 'r') as file:    first_line = file.readline()    print(first_line)  

Bu kod çalıştırıldığında, konsola “Satır 1” yazısı yazdırılacaktır. Dosyanın ikinci ve üçüncü satırlarını okumak için ise readline() metodunun tekrar tekrar çağrılması yeterlidir. Bu şekilde dosya okuma işlemi readline() metodu kullanılarak gerçekleştirilebilir.

readlines() Metodu

Python’da dosya okuma işlemi için birçok farklı fonksiyon mevcuttur. Bu fonksiyonlardan biri de dosyadaki tüm satırları okuyan ve bir liste olarak döndüren readlines() metodu kullanılır. Bu metodun kullanımı oldukça basittir. Dosya okuma işlemi için öncelikle dosya açılır ve daha sonra readlines() metodu kullanılarak tüm satırlar okunur ve bir liste olarak döndürülür.

Bu yöntem sayesinde dosyadaki tüm satırlara kolayca erişebilir ve bu satırları liste halinde kullanabilirsiniz. Ayrıca, listenin her bir elemanı bir satıra denk gelir ve bu sayede satırları ayrı ayrı işlemek veya diğer işlemlerde kullanmak çok daha kolay olur.

Bir örnek vermek gerekirse, bir metin belgesinde bulunan isimleri okumak ve bunları bir listeye eklemek istediğimizi düşünelim. İlk olarak, dosyayı açmak ve okumak için aşağıdaki kod bloğunu kullanabiliriz:

Dosya adı: isimler.txt
Ahmet
Mehmet
Zeynep
dosya = open("isimler.txt", "r")isim_listesi = dosya.readlines()

Bu kod bloğu ile dosya okundu ve satırlar bir liste olarak isim_listesi değişkenine aktarıldı. Bu listeyi daha sonra istediğimiz gibi kullanabiliriz.

with Bloğu

Dosya okuma işlemi sırasında, dosyayı açtıktan sonra dosyayı kapatmayı unutmamak çok önemlidir. Dosyanın açık kalması, programın hatalı çalışmasına neden olabilir ve hatta dosya verilerinin bozulmasına yol açabilir. Bu sebeple, dosyayı açtıktan sonra mutlaka kapatmak gereklidir.

Python’da bu işlemi otomatik olarak yapmak için with bloğu kullanılır. Dosya okuma işleminin yapılacağı kod bloğu with bloğu içerisinde yer alır ve işlem tamamlandıktan sonra dosya işlemleri otomatik olarak gerçekleştirilir. Bu sayede, dosya kapatma işlemi unutulsa bile, Python çıkış kodu ile dosyayı kapatmış olur.

Aşağıdaki örnekte, “example.txt” isimli dosya with bloğu kullanılarak açılır ve dosya içeriği ekrana yazdırılır.

Kod:
with open("example.txt", "r") as dosya:    veri = dosya.read()    print(veri)
Açıklama: Aşağıdaki örnekte, “example.txt” isimli dosya read modunda with bloğu kullanılarak açılır ve dosya içeriği veri değişkenine aktarılır. Daha sonra veri değişkeni ekrana yazdırılır. Bu kod bloğu çalıştırıldıktan sonra dosya otomatik olarak kapatılır.

with bloğu kullanılarak dosya okuma işlemi yapılırken, dosya kapatma işlemi unutulsa bile otomatik olarak gerçekleştirilir. Bu sebeple, dosya işlemleri sırasında her seferinde dosyayı açtıktan sonra kapatmaya dikkat edilmelidir.

İzinler

Dosya okuma işlemleri sırasında, dosyalara erişim izinleri belirtilmelidir. Bu izinler, dosya sahibi, grup üyeleri ve diğer kullanıcılar için ayrı ayrı belirlenebilir. Dosya okuma izni için genellikle “r” harfi kullanılır. Ayrıca, sadece belirli bir kullanıcının dosyayı okuma izni olması isteniyorsa, “user” adıyla belirtilebilir.

Dosya okuma işlemi sırasında herhangi bir hata alınması durumunda, hata mesajları kullanıcıya gösterilmelidir. Bu hatalar genellikle dosya yok hatası, okuma hatası veya dosya izinleri hatası olabilir. Bu tür hataların önlenmesi için try-except blokları kullanılabilir.

Diğer bir önlem ise, dosyaların sürekli olarak açık bırakılmaması gerektiğidir. Dosya okuma işlemi tamamlandıktan sonra, dosya kapatılmalıdır. Dosya kapatma işlemi otomatik olarak gerçekleştirilebileceği gibi, with bloğu kullanılarak da gerçekleştirilebilir.

try-except Blokları

Dosya okuma işlemleri sırasında, bazı hatalarla karşılaşabilirsiniz. Bunların başında, dosya bulunamadığı ya da okuma izinlerine sahip olunmadığı durumların yanı sıra, dosyaların boş olması ya da hatalı biçimde kodlanmış olması gibi sorunlar geliyor. Bu gibi durumlarda, try-except blokları kullanarak kodunuzun çökmeden devam etmesini sağlayabilirsiniz.

try-except blokları, programda belirli bir hatanın olması durumunda önceden tanımlanmış olan bir hata mesajı ve kod bloğunu devreye sokar. Dosya açma gibi potansiyel olarak hata verebilecek işlemler sırasında try-except blokları kullanmak, programınızın daha sağlıklı çalışmasını sağlayacaktır.

Örneğin;

try:    dosya = open("ornek.txt", "r")    print(dosya.read())except:    print("Dosya okunurken bir hata oluştu.")

Bu kodda, önce “ornek.txt” dosyası okunmaya çalışılır. Eğer dosya bulunamaz ya da okunurken bir hata oluşursa, except bloğu çalıştırılır ve ekrana “Dosya okunurken bir hata oluştu.” yazısı basılır.

Dosya Okuma Uygulaması

Bir dosyayı okumak için temel adımları öğrendikten sonra, şimdi örnek bir dosyayı okuma işlemine bir göz atalım. Aşağıdaki örnek, bir dosyanın nasıl okunacağına dair basit bir fikir sağlar. Öncelikle, dosyayı okumak için bir dosya adı belirlemek gerekir. Dosyanın yolu tam olarak belirtildiğinden ve okuma modunda açıldığından emin olun.

Dosya İçeriği
satır 1
satır 2
satır 3

with bloğu kullanarak dosya okuma işlemi yapalım

with open("ornek.txt", "r") as dosya:    veri = dosya.read()    print(veri)

Yukarıdaki kod, “ornek.txt” dosyasını okuyacak ve dosya içeriğini ekrana yazdıracaktır.

Aynı anda birden fazla dosya okumak isterseniz, aynı işlemi farklı dosya adları için tekrar edebilirsiniz. Dosyaların her biri için dosya adını değiştirmeniz yeterlidir.

with open("ornek1.txt", "r") as dosya1:    veri1 = dosya1.read()with open("ornek2.txt", "r") as dosya2:    veri2 = dosya2.read()print(veri1)print(veri2)

Yukarıdaki örnekte, hem “ornek1.txt” hem de “ornek2.txt” dosyalarını okuyoruz ve her birinin içeriğini ekranda ayrı ayrı yazdırıyoruz.

İlgili Yazılar

Bir cevap yazın

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