Python’da Dosya İşlemleri

Programlama dillerinde bazı durumlarda girilen verilerin saklanması veya saklanan bilgiler üzerinden işlem yapılması gerekebilir. Daha sonra kullanılabilmek amacıyla kalıcı olarak depolama birimlerinde saklanan veri ve programlara dosya (file) adı verilmektedir.

Dosyalama yöntemleri; Metin (Text) dosyaları, İkili Dosyalar (Binary Files) olmak üzere iki grupta incelenmektedir.

Metin Dosyaları (Text Files): Bir metin editörü yardımıyla oluşturulan programlara verilen addır. Genellikle metin editörü sayesinde tek satırdan veya daha fazla satırdan oluşan metin karakterlerini içerir. Metin karakterleri (\n) veya (\r) gibi satır sonu belirteçleriyle kodlama satırı sonlandırılır. Metin dosyalarının kullanmış olduğu genel uzantılar; .doc, .csv, .txt, .dat, .html, .xlm şeklinde iken programlarının veya kodlama dosyalarının uzantısı .py şeklindedir.

İkili Dosyalar (Binary Files): Metin dosyalarında olduğu gibi sadece metin içermeyen, aynı zamanda ses, resim, video gibi yapıları da içerisinde barındıran dosyalama türüdür. Dosyanın erişimi byte (karakter) bazlıdır. İkili dosyaların kullanmış olduğu genel uzantılar; .exe, .zip, .jpg, .wav şeklindedir. İkili dosyalar byte dizileri halinde oluşturulur. Bu byte halinde oluşturulmuş yapılar bir hex editörü yardımıyla kullanıcıların okuyabileceği bir hale getirilir.

Dosyalar üzerinde temel olarak üç farklı işlem yapılmaktadır. Bunlar; Dosyaların “open” komutuyla açılması, dosyalar üzerinde işlemlerin yapılması (Dosya üzerindeki herhangi bir verinin okunması, dosya üzerine herhangi bir verinin yazılması, dosya üzerindeki bir verinin düzeltilmesi, güncellenmesi veya silinmesi), dosyanın “close” komutuyla kapatılmasıdır.

Dosyalama işlemlerinde kullanım sağlanmadan önce ilgili dosyanın açılıp gerekli tanımlama işleminin gerçekleştirilmesi gerekmektedir. Dosya açılırken genellikle dosya üzerinde hangi işlemin yapılacağı tanımlanmalıdır. Bu işleme dosya açma modu denir. Dosya üzerindeki bilgilerin sadece okunması isteniyorsa “read/r” modunda açılmalıdır. Eğer bir dosya üzerinde hem okuma hemde yazma işlemi gerçekleştirilecek ise “read-write/r+” şeklinde modu belirlenmelidir. Bazı dosyalar üzerinde sadece ekleme işlemi yapılmakta istenilmektedir. Bu durumlarda ise “append/a” modu aktif hale getirilir.

Dosya işlemleri gerçekleştirilirken bazı hususlara dikkat edilmesi gerekmektedir. Bunlar; Açılmış ve üzerinde işlem yapılmış her dosya işlem bittikten sonra kapatılmalıdır. Dosyanın açılış amacına uygun bir şekilde hareket etmesi gerekmektedir. Bir dosya okunma amacıyla açılmış ise üzerinde yazma işlemleri gerçekleştirmeye çalışmak anlamsız olacaktır. Dosya isimleri verilirken daha önceden açılmamış dosya isimleri verilmeye dikkat edilmelidir. Çünkü bazı modlar aynı isimli dosyaların içerisindeki veriyi silmektedir. Bu da kullanıcıların veri kaybına neden olacaktır. Dosya işlemleri gerçekleştirilirken oluşturulmamış dosyanın açılmaya çalışılması veya kapatılmaya çalışılması programcıların hata mesajı alacağı (“File not found”) yapılardandır. Dosya işlemlerinde hazırda açık hale getirilmiş bir dosyanın yeniden açılmaya çalışılması ve kapalı halde olan bir dosyanın yeniden kapalı hale getirilmesini istemek programın çalışması esnasında alınacak bir başka hata (“File already open”, “File already closed”) türüdür.