Python’da Dosya Açma ve Yazma İşlemleri

Bu yazıda, Python’da Dosya Açma ve Yazma İşlemlerini bulacaksınız.

Dosya Açma ve Yazma İşlemleri

Dosya Açma İşlemi

Dosya açma işlemlerinde open() fonksiyonunu kullanıyoruz. Yöntemi şu şekildedir: open(dosyanin_adi,erisim_kipi)

open("personel_listesi.txt","w")
dosya = open("personel_listesi.txt","w")
dosya.close()

Dosyaları Kapatma İşlemi

Program üzerinde çalışırken dosya ile işimiz bittiğinde o dosyanın kapanması gerekmektedir. Aksi takdirde o program açık kaldığı sürece dosya silinemez.

Dosyayı kapatmak için: dosya.close()

dosya.close()

w Kipi ile Çalışmak

w kipi ile her çalışma sonunda dosya oluşturulur. Eğer var olan bir dosya varsa bunu silip tekrar oluşturur. Bu yüzden buna dikkat etmelisiniz. Türkçe karakter kullanılacaksa o zaman şu ifadeyi yazmamız gerekmektedir:

encoding = “utf-8”

dosya_2 = open("ogrenci_listesi.txt", "w", encoding="utf-8")
dosya_2.write("Onur Kızılarslan")
dosya_2.close()

a Kipi ile Çalışmak

append yani ekleme fonksiyonudur. Eğer dosya oluşturulmuşsa o dosyaya ekleme yapmamızı sağlar.

dosya_2 = open("ogrenci_listesi.txt", "a", encoding="utf-8")
dosya_2.write("\nKerim Gümrah")
dosya_2.close()
dosya_2 = open("ogrenci_listesi.txt", "a", encoding="utf-8")
dosya_2.write("\nKerim Gümrah")
dosya_2.close()

r Kipi ile Çalışmak

Dosyaları okumak ve verileri çekmek için “r” kipiyle çalışıyoruz. Eğer vermiş olduğumuz isimle bir dosya bulunmuyorsa “FileNotFoundError” hatası verecektir.

dosya_3 = open("personel_listesi.txt", "r", encoding="utf-8")
file.close()
---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_16632\299564355.py in <module>
----> 1 dosya_3 = open("personel_listesi.txt", "r", encoding="utf-8")
      2 file.close()

FileNotFoundError: [Errno 2] No such file or directory: 'personel_listesi.txt'
try:
    dosya_3 = open("personel_listesi.txt", "r", encoding="utf-8")
    file.close()
except FileNotFoundError:
    print("Bu isimle bir dosya bulunmamaktadır..!")

** Bu isimle bir dosya bulunmamaktadır..! **

dosya_4 = open("ogrenci_listesi.txt", "r", encoding="utf-8")

for isim in dosya_4:
    print(isim)

dosya_4.close()
dosya_4 = open("ogrenci_listesi.txt", "r", encoding="utf-8")

for isim in dosya_4:
    print(isim, end="")

dosya_4.close()

read () Fonksiyonu

Read fonksiyonu eğer bir değer vermezsek tüm dosya içeriğini okur.

dosya_4 = open("ogrenci_listesi.txt", "r", encoding="utf-8")

bilgi = dosya_4.read()
print("Dosyanın içeriği:\n", bilgi,sep="")
dosya_4.close()

readline() Fonksiyonu

Bu fonksiyon her çağrıldığında tek bir satır okur. Tüm bilgileri almak için her defasında tekrardan çalıştırmak gerekmektedir.

dosya_4 = open("ogrenci_listesi.txt", "r", encoding="utf-8")
print(dosya_4.readline())
print(dosya_4.readline())
print(dosya_4.readline())
print(dosya_4.readline())

readlines() Fonksiyonu

Bu fonksiyonu bütün bilgileri tek seferde bir liste halinde bize verir.

dosya_4 = open("ogrenci_listesi.txt", "r", encoding="utf-8")
dosya_4.readlines()
dosya_4.close()

seek() fonksiyonu

Eğer biz dosyanın belli bir yerine gitmek istiyorsak burada bunu kullanıyoruz. Burada hem okuma hem de yazma işlemini yapmamızı sağlayan fonksiyon r+ kipidir.

with open("ogrenci_listesi.txt", "r+", encoding="utf-8") as dosya:
    print(dosya.read())
with open("ogrenci_listesi.txt", "r+", encoding="utf-8") as dosya:
    dosya.seek(2)
    dosya.write("seek fonksiyonunu buraya yazdım")
with open("ogrenci_listesi.txt", "r+", encoding="utf-8") as dosya:
    print(dosya.read())
with open("ogrenci_listesi.txt", "a", encoding="utf-8") as dosya:
    dosya.write("Suna Destina Kızılarslan\n")
with open("ogrenci_listesi.txt", "r", encoding="utf-8") as dosya:
    print(dosya.read())
with open("ogrenci_listesi.txt", "r+", encoding="utf-8") as dosya:
    print(dosya.readlines())

insert() fonksiyonu

Dosyanın içerisinde istediğimiz satıra ekleme yapar. Eğer en son satır ile arasında boşluk varsa boşlukları oluşturmaz onun yerine en son satıra ekleme yapar.

with open("ogrenci_listesi.txt", "r+", encoding="utf-8") as dosya:
    liste = dosya.readlines()
    liste.insert(52,"\nMerhaba Dünya")
    dosya.seek(0)
    for a in liste:
        dosya.write(a)

writelines() fonksiyonu

writelines() fonksiyonu, bir liste veya başka bir iterable (yinelenebilir) nesne üzerinde döngü yaparak, her bir öğeyi bir dosyaya satır olarak yazmak için kullanılır. Bu yöntem, dosyaya birden çok satır eklemek için kullanışlıdır.

with open("ogrenci_listesi.txt", "r+", encoding="utf-8") as dosya:
    liste = dosya.readlines()
    liste.insert(2,"Python Eğitimi\n")
    dosya.seek(0)
    dosya.writelines(liste)
with open("ogrenci_listesi.txt", "r+", encoding="utf-8") as dosya:
    bilgi = dosya.read()
    print(bilgi)

tell() fonksiyonu

imlecin hangi byte üzerinde olduğunu bize söyleyen fonksiyon.

with open("ogrenci_listesi.txt", "r", encoding="utf-8") as dosya:
    print(dosya.tell())
with open("ogrenci_listesi.txt", "r", encoding="utf-8") as dosya:
    dosya.seek(10)
    bilgi = dosya.read(20)
    print(bilgi)
    print(dosya.tell())