Skip to main content

Python Dosya İşlemleri – Dosya Açma , Okuma ve Yazma

Bugün bu yazımızda Python programlama dilinde dosya oluşturma , bir dosyaya yazma , dosyadan okuma gibi dosya yönetim işlemlerinin nasıl yapılacağını anlatmaya çalışacağız.Bu işlemleri gerçekleştirirken herhangi bir ek bir araç kullanmadan , import işlemi yapmayacağız.

Python’da Dosya Oluşturma

Python‘da yeni bir dosya oluşturmak için open() fonksiyonunu kullanırız.

>>> open("test.txt","w");

Herhangi bir yol vermediğimiz için txt dosyamızı , çalıştırdığımız .py dosyası ile aynı klasör içinde arayacaktır.Eğer açmaya çalıştığı dosya çalışma alanımızda yok ise yeni bir dosya oluşacak.

Çalışma alanımızı bilmiyorsak görmek için şu komutu vererek öğrenebiliriz.Burada import ettiğimiz os kütüphanesinin dosya okuma ile bir alakası yoktur.Sadece işletim sisteminde çalıştırdığımız dosyanın nerede olduğunu görebilmek için kullandık.

import os
os.getcwd()

Open fonksiyonunun birinci parametresinin dosyanın ismi olduğunu rahatlıkla görebiliyoruz.İkinci parametre ise dosyaları yönetirken verdiğimiz yetkidir.

w : Dosyaya yazmak için kullanılır. (Write)

r : Dosyadan okuma yapmak için kullanılır.(Read)

a : Var olan dosyaya yeni bir şeyler eklemek için kullanırız. (Append)

Fonksiyonun ikinci parametresine “r” kipini yazarsak , sadece dosyayı okuyacağımızı belirtiriz.Append kelimesi Türkçe’ye eklemek olarak çevrilebilir.”a” kipi ile dosyaya yeni veriler ekleriz.

Dosya işlemlerinde var olan dosyaya yeni bir veri eklemek istediğimizde “a” kipi yerine “w” kipini kullanırsak , dosyada bulunan eski verileri kaybederiz.Çünkü “w” kipini kullandığımızda yeni bir dosya oluşturup eski dosyanın üzerine yazacaktır.

notlarim = ("notes.txt","w") // notes.txt yi oluşturduk.
kitaplistem=("kitaplar.txt","r") // kitaplar.txt dosyasını okumaya çalıştık , eğer klasörümüzde kitaplar.txt adlı bir dosya yoksa No such file or directory hatası alırız.
dosyam = open("futbolcular.txt","a") // dosyaya yeni veriler eklemek üzere açtık.

Burada “a” kipinde aynı zamanda dosya yoksa sıfırdan açma yetkiside vermiş oluyoruz.

fopen() Dosya Yolu Vererek Kullanma

Bazen ulaşmaya çalıştığımız dosyalar çalışma alanımız dışında bir yerde olabilir.Şu şekilde dosya yolu verebiliriz ;

dosya = open("C:\\Users\\mert\\calismalarim\\okunacakdosya.txt","a")

Python’da string içerisinde “\” karakterini kullanabilmek için önüne bir adet daha yazıp “\” karakterini kaçış için yazmamız gerekiyor.Veya r kaçış dizisini de kullanabiliriz.

dosya = open(r"C:\Users\mert\calismalarim\okunacakdosya.txt","a")

Türkçe Karakter Hatası – UTF-8 ile Parametresi

Dosya işlemlerinde , Türkçe karakter hataları ile karşılaşmamak için open fonksiyonuna encoding parametresi verebilirsiniz.

dosya=open("dosya.txt","r",encoding='utf8')

Python’da Dosyaya Yazma

Dosyadan yazma işlemini hemen örnek bir kod kullanarak açıklayalım.

dosyam = open("kediler.txt","w")
dosyam.write("Van Kedisi")
dosya.close()

Yapdığımız değişikliğin gerçekleşmesi için close() fonksiyonunu çağırarak dosyamızı kapatmamız gerekiyor.

Şimdi de biraz önce oluşturduğumuz dosyanın bir alt satırına yeni bir yazı ekleyelim.Dosyanın sıfırlanmasını istemediğimiz için “a” kipini kullanacağız.

dosyam= open("kediler.txt","a")
dosyam.write("\nSokak Kedisi")
dosyam.close()

“\n” ifadesini kullanmasaydık eklediğimiz yazı var olan satırın sonuna eklenecekti.Alt satıra eklemiş olduk.

writelines() fonksiyonu ile çoklu yazma

Pek kullanılmasa da writelines() fonksiyonu ile liste olarak verdiğimiz stringleri tek seferde yazdırabiliriz.Kullanımı şu şekilde ;

yapilacaklar = open("notlarim.txt","w")
yapilacaklar.writelines(["Markete gidilecek\n","Kod yazılacak\n","Sınava çalışılacak\n")
yailacaklar.close()

Bu işlemi for döngüsü ve write() fonksiyonunu birlikte kullanarak da yapabilirdik ;

listem = ["Markete gidilecek","Kod yazılacak","Sınava çalışılacak"]
file = open("notlarim.txt","w")
for i in listem:
     file.write(i+"\n")
file.close()

Python’da Dosya Okuma

Python’da dosya okuma fonksiyonlarımız read() , readlines() , readline() dır.Hemen kullanımlarını kodlar ile açıklayalım.

read() kullanımı

yenidosyam=open("bilgiler.txt","w")
yenidosyam.write("Gün doğar.\nGün batar.\nBen hep buradayım.")
yenidosyam.close()
yenidosyam=open("bilgiler.txt")
print bilgiler.read()

Çıktı olarak yazdığımız tüm cümleleri alt alta basacaktır.

readlines() kullanımı

Eğer readlines() kullanırsa okuduğumuz dosyadaki tüm satırları bir liste olarak alırız.readline() kullansaydık dosyanın sadece ilk satırını okuyabilecektik.

yenidosyam=open("bilgiler.txt")
satirlar=yenidosyam.readlines()
for i in yenidosyam:
    print(i)

Python da readlines() fonksiyonunu dosyadan satır satır okuduğunu öğrenmiş olduk.Python biz görmesek de dosyalar üzerinde gezinme işlemini imleç ile yapıyor.Burada readlines() fonksiyonunun yaptığı imleci ilk okumadan sonra bir alt satıra taşımak.İstersek seek() ile imlecin konumuna manuel olarak müdahale edebiliriz.

yenidosyam.seek(0) // İmleci dosya başına taşıdık
yenidosyam.seek(5) //İmleci 5. karaktere taşıdık
yenidosyam.readlines(5) // imleci 5. karaktere taşıdığımız için ilgili satırda 5 ile 10.karakterler arasını okuyacaktır.
yenidosyam.tell() //imlecin mevcut adresini verir.

Python’da Dosya Silme

Python’da dosya silmek bir hayli basit.

import os
os.remove("silinecekdosya.txt") // Çalışma alanındaki dosyayı silmek için
os.remove("C:\\Users\\mert\\calismalarim\\okunacakdosya.txt") // başka adresteki dosyayı silmek için

Python’da Dosya Adı Değiştirme

os.rename() metodu ile dosya ismini değiştirebiliriz.Birinic parametre olarak değişecek mevcut dosya , ikinci parametre ise yeni vereceğimiz isim olmalı.

import os
os.rename("bilgiler.txt","myinformation.txt")

Bir yazımızın daha sonuna gelmiş olduk.Sitemizdeki diğer Python yazılarını okuyabilir veya dosya işlemleri ile ilgili Python’un resmi dökümasyonunu şu adresten okuyabilirsiniz.

Mert İnal

Programlamayı ve teknoloji seviyorum.Kocaeli Üniversitesi Bilgisayar Mühendisliği 3.sınıf öğrencisiyim.Bu siteyi programlama konusunda Türkçe içerik biriktirmek ve eksik olduğum konuları yazarak öğrenmek üzerine kurduk.Kodlar.Net ekibi zengin içerikler ile bir programlama arşivi biriktirmeyi hedefler.

Bir cevap yazın

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