Dosya İşlemleri # 12 - Python Dersleri (Tutorials)

in #zzan5 years ago

yeni.jpg

Merhabalar

Python programlama derslerinin bir önceki dersinde tell() metodunun kullanımı görmüştük. Bu dersimizde seek() metodunu ve tell() metodunun seek() metodu ile kullanımını göreceğiz.

seek() Metodu

seek() metodu, bir dosyanın herhangi bir yerinden okuma yapmamızı sağlar. tell() metodu ile birlikte kullanılır.

Genel yapısı aşağıdaki gibidir :

file.seek(byteNumber)

Şimdi de uygulamasını görelim. Okuma yapacağımız bilgi.txt dosyasının içeriği aşağıdaki gibidir :

Kod kısmından bahsedelim. Öncelikle şunu belirteyim. seek() metodu bizim dosya imlecini istediğimiz yere götürmemizi sağlar. Sonrasında okuma işlemini önceki derslerimizden bildiğimiz read() metodu ile yaparız :

Örneğimizde dosyamızı with bloğu içerisinde açıyoruz, bu sebeple dosya kapatma işlemi yapmamıza gerek kalmayacaktır.

Dosya içerisinde tr karakterler bulunduğundan open() fonksiyonunu çağırırken encoding parametresini "utf-8" olarak belirtmeyi unutmadık.

Sonrasında gelen

file.seek(10)

kodu ile imlecimizi 10.byte a konumlandırdık. Ancak burada dikkat edilmesi gereken bir nokta var. 10 sayısını sayarken bir den değil dizilerde olduğu gibi sıfırdan başladık. Yani aslında imleç 11. byte'tadır.

content = file.read(12)

kodu ile dosyadan 12 karakterlik bir veri okuyup bu değeri _ content_ değişkenine atadık.

read() metodu, herhangi bir parametre almazsa dosyanın tamamını okurken içerisine herhangi bir parametre aldığında o sayı değeri kadar okuma yapar.

Son olarak da

print(content)

kodu ile okuma yaptığımız kısmı ekrana yazdırdık. Çıktımız aşağıdaki gibidir :

Şimdi böyle bir okuma işleminde imlecimizin yerini öğrenmek için tell() metodunu kullanalım. Programımızın yeni hali aşağıdaki gibidir :

tell() metodu 23 değerini döndürdü. Bunun sebebi 10.byte'tan başlayıp 12 karakter okuması yaptığında 23.byte ın başında olmasıdır.

Dosya imlecini dosyanın başına almak için de yine seek() metodunu kullanırız :

Şimdilik bu kadar.

Umarım faydalı bir çalışma olmuştur.

Teşekkürler.

yesilayrca.png

Kaynak belirtilmeyen görseller bana aittir. The pictures without source in the post is belong to me


Posted via Marlians.com
Sort:  

You got a 68.88% upvote from @brupvoter courtesy of @elektroyazilim!

You got a 17.36% upvote from @joeparys! Thank you for your support of our services. To continue your support, please follow and delegate Steem power to @joeparys for daily steem and steem dollar payouts!

You got a 50.00% upvote from @bid4joy courtesy of @elektroyazilim!

You got a 98.39% upvote from @minnowvotes courtesy of @elektroyazilim!

This post has received a 28.57% upvote from @lovejuice thanks to @elektroyazilim. They love you, so does Aggroed. Please be sure to vote for Witnesses at https://steemit.com/~witnesses.

The force is with you! You got a 31.67% upvote from @steemyoda courtesy of @elektroyazilim!

Coin Marketplace

STEEM 0.18
TRX 0.13
JST 0.028
BTC 57296.76
ETH 3055.75
USDT 1.00
SBD 2.32