8 Eylül 2014 Pazartesi

Python'da Dosya İşlemleri

Herkese Merhabalar

Özellikle biyoinformatik çalışıyorsanız büyük dosyalar olmazsa olmazınız demektir. Kısa bir sekans ile çalışmak oldukça kolay olabilir ama bir genomu kopyalayıp yapıştırmak hiç kolay bir şey değildir. Python kullanarak yeni dosyalar oluşturabilir, var olan dosyalardan okuma yapabilir ve daha bir çok şeyi yapabilirsiniz. Hem bu işlerinizi çok kolaylaştıracaktır hem de bu şekilde yaptığınız iş oldukça profesyonel görünecektir. Şimdi bunları nasıl yapacağımıza bakalım.

Dosya Oluşturmak

Başlıktan da anlayacağınız gibi amacımız dosya oluşturmak. Yine anlatacaklarımı terminal üzerinden anlatacağım. Terminal kullanımını bilmiyorsanız daha önce o konuda yazdığım yazıya bakabilirsiniz. İlk olarak komut satırını açıp şu kodları yazıyoruz.
>>> import os
>>> os.getcwd()
Bu kodun çıktısı bize dosyanın oluşacağı konumu gösteriyor. Şimdi buraya bir dosya oluşturacağız. os modülünü sadece gercwd () fonksiyonunu kullanmak için çağırdık. Bu yüzden dosya oluşturmak için buna ihtiyacımız yok. Yeni bir dosya oluşturmak için open () adlı bir dosyadan yardım alacağız.
>>> open("deneme.txt", "w")
Bu şekilde belirtilen konuma deneme adından bir dosya oluşturmuş oluyoruz. open () komutu normalde var olan bir dosyayı açmak için kullanılır fakat deneme adında bir dosya olmadığı için şuan deneme.txt dosyasını oluşturdu. Peki "w" ne anlama geliyor. Bunu dosyayı yönetirken verdiğimiz izin olarak düşünebiliriz. İngilizce'de "write" kelimesinin kısaltması olarak kullanıyoruz. Dosyaya yazabilme izini vermemizi sağlıyor.

Bunun dışında "r" ve "a" kipi de var. "r" kipi ingilizce'de "read" kelimesinin kısaltılmış halidir. Bu dosya üzerinde sadece okuma izni verir. "a" ise ingilizce'de "append" kelimesinin kısaltılmış halidir. Dosyaya yeni veri eklemek için izin verir. Bilinmesi gereken bir başka önemli şey de "w" ve "a" bize yeni bir dosya oluşturma imkanı verirken "r" sadece var olan dosyayı okuma imkanı verir. Eğer "r" ile dosya oluşturmaya çalışırsanız hata alırsınız.

Eğer bu 3 kipten birini kullanmazsanız Python "r" kipini kullanacaktır.

Dosyaya Yazmak

Yukarıda bir dosyayı nasıl oluşturabileceğimizi öğrendik. Şuan bu dosyaya nasıl müdahale edeceğimizi ve veri girişi yapacağımızı öğreneceğiz. Bunu uzun uzun anlatmaktansa bir örnek içinde anlatmak daha kolay olacaktır. O zaman ilk önce bir dosya oluşturarak içine "Biyoinformatiği seviyorum" yazdıralım.
dosya = open("deneme.txt", "w")

dosya.write("Biyoinformatiği seviyorum")

dosya.close()
İlk satırda deneme.txt  adında bir dosya oluşturduk ve buna ekleme yapabilmek için izin verdik. İkinci satırda ise bu dosyaya "Biyoinformatiği seviyorum" yazdırdık. Daha sonra da close() fonksiyonu ile dosyayı kapattık.

Aynı dosyanın içine yeni bir şeyler ekleyelim şimdide.
dosya = open("deneme.txt", "a")

dosya.write("\nhttp://biyo-informatik.blogspot.com.tr/")

dosya.close()
Bu sefer dosyayı "a" kipi ile açtık. Eğer "w" kipi ile açarsanız dosyayı siler ve yerine yenisini ekler. İkinci satırda kullandığımız "\n" yazdırdığımız şeyi bir alt satıra yazdırır. Yeni bir satıra yazılmasını istediğiniz yazıların başına yazmanız yeterlidir. Bunlardan sonraki yazılarımda bahsedeceğim şimdilik bunu bilseniz yeterli.  

Dosyayı Okumak

Şimdiye kadar nasıl yeni bir dosya oluşturacağımızı, bu dosyaya nasıl veri gireceğimizi ve bu dosyayı nasıl kapatacağımızı öğrendik. Şimdi de oluşturduğumuz bir dosyadan nasıl veri okuyacağımızı öğreneceğiz. Bu iş için de read(), readlines() ve readline() fonksiyonlarından faydalanacağız. Bunları bir örnek üzerinde gösterelim.
>>> dosya = open("deneme.txt","w")
>>> dosya.write("Biyoinformatiği Seviyorum")
>>> dosya.close()
>>> dosya = open("şiir.txt")
>>> print dosya.read()

Biyoinformatiği Seviyorum
Son satıra kadar olan kısımın ne anlama geldiği yukarıda yazıyor. Burada kullandığımız read() fonksiyonu dosya adlı değişkenin içeriğini okumamızı sağlıyor. dosya adlı değişkenin değeri deneme.txt adlı bir dosya olduğu için, bu fonksiyon deneme.txt adlı dosyanın içeriğini bize gösterecektir.

Ayrıca read() dışında bir de readlines() adlı bir fonksiyon bulunur. Eğer yukarıdaki komutu:
>>> yeni.readlines()
şeklinde verecek olursak, çıktının bir liste olduğunu görürüz.Bir de, eğer bu readlines() fonksiyonunun sonundaki "s" harfini atıp;
>>> yeni.readline()
şeklinde bir kod yazarsak, dosya içeriğinin yalnızca ilk satırı okunacaktır. Python’un readline() fonksiyonunu değerlendirirken kullandığı ölçüt şudur: “Dosyanın başından itibaren ilk ‘\n’ ifadesini gördüğün yere kadar oku”. 

Dosya Silmek

Bir çok dosya oluşturdunuz ve bunları silmek istiyorsunuz. Aslında bu oldukça basit. Bunun için en kolay yol şudur:
os.remove("dosya/yolu")
Örneğin Masaüstünde bulunan bir dosyayı silmek için şu komutu vermeniz yeterlidir.
>>> import os
>>> os.remove("/home/kullanıcı_adı/Desktop/deneme.txt")
Bu haftalık anlatmak istediklerim bu kadar. Yeni bir konuda görüşmek dileğiyle.

Bilgi paylaştıkça güzelleşir. Paylaşarak öğrenmek dileğiyle.

Osman

Hiç yorum yok:

Yorum Gönderme