18 Ekim 2011 Salı

Dosya İşlemleri 3(Dosyadan Veri Okuma-2)

Önceki desimizde kullandığımız readlines() fonksiyonu, dosya içeriğini okurken (dikkat ettiniz mi bilemem) şu şekilde okuyordu:
Öreneğin;

Python
Dili
Öğreniyorum
dosya içeriğimiz olsun.
>>>dosya.readline()
komutunu verdiğimizde bize 1.satırı ekran çıktısı olarak verecektir.Bu komutu tekrar verdiğimizde 2.satırı verecektir.Bu işlemi tekrarlayarak dosya sonuna geldiğimizde artık gösterecek bir şey olmadığı için boş('') ekran çıktısı verecektir.Bunun nedeni ise python bu komut ile imleci -biz görmesekte imleci var- bir sonraki satırın başına getiriyor.
Bu durumdan sonra dosyayı tekrar okutmak için başa sarmak lazım.Bunun için komutumuz ise .seek()
>>>dosya.seek(0)
komutunu verdiğimizde python imleci dosyanın ilk satırına gelir.Hemen akabinde
>>>dosya.read()
komutunu verirsek dosyayı baştan okuduğunu görebilirsiniz.
Eğer imlecei farklı bir yere taşımak istersek -ki farklı olan her zaman ilgimizi çeker- .seek(0) komutu içindeki değeri değiştirmek olacaktır.
>>>dosya.seek(5)
komutu dosyamızın başltan ilk 5 karakterinden sonraki kısmı ekranımıza verecektir.

Örneğin
Python öğreniyorum
dosya içeriği olsun.
(tabi bundan önce dosya açma işlemlerini yapıyoruz)
>>>dosya.seek(5)
komutunu verip hemen arkasından
>>>dosya.read()
komutunu verdiğimizde ekrana
n öğreniyorum
çıktısını verecektir.

Ama bu işlemleri readline() komutuylada halledebiliriz.Şöyleki;
>>>dosya.radline(5)
komutunu verdiğimizde yine 5.karakterden sonrasını ekrana verecektir.

Peki imlecimizin o an nerede olduğunu nasıl bulacağız?
Cevap .tell() komutuyla
>>>dosya.tell() komutunu verdiğimizde imlecimizin nerede olduğunu bulabilirz.
Hatta bunu biraz daha geliştirerek .tell() komutundan önce .read() komutuyla dosyayı okuttuktan sonra .tell komutunu kullanırsak o dosyadaki karakter sayısını bulabilir.
Dosya içeriği
Python öğreniyorum
>>>dosya.read()
Python öğreniyorum
>>>dosya.tell()
18

şeklinde karakter sayısını verecektir.
Son bir dosya okuma işlemi de döngü kurarak dosya içeriğini okumaktır.
Dosya içeriği
1.satır
2.satır
3.satır
4.satır
5.satır
olsun.Döngümüzü kurarsak;
for x in dosya:
print(x)

komutuyla ekrana
1.satır
2.satır
3.satır
4.satır
5.satır
şeklinde çıktıyı verecektir.

Hiç yorum yok:

Yorum Gönder