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

in #undefined5 years ago

object.jpg

Merhabalar

Python programlama derslerinin bu bölümünde dosya yazma işlemlerinden bahsedeceğim.

Dosya işlemlerinde bilinmesi gereken bir nokta var. Aşağıdaki resme bakalım. Bir text dosyasının içerisine "Deneme" yazısı yazılıp kaydedilmiş. Sonrasında bu dosyanın özelliklerine baktığımızda boyutunun 6 byte olduğunu görüyoruz.

Yani "Deneme" yazısının her bir karakteri dosyada 1 byte lık alanda saklanmış. Başka bir deyişle her bir karakter, hafızada 1 byte lık yer kaplamaktadır.

Önceki derslerimizde dosya açma ve kapama işlemlerini görmüştük. Şimdi de bir dosyaya yazma işlemi nasıl yapılır, görelim.

Dosya Yazma

Bir dosyaya bir şeyler yazabilmek için öncelikle o dosyayı açmamız gerekir. Sonrasında dosyaya bir şeyler yazmak için write() fonksiyonu kullanılır.

write() fonksiyonunun genel kullanımı aşağıdaki gibidir :

file.write("Yazılacak Metin")

Şimdi de uygulamasını görelim. Dosyaya "Python Dersleri - ElektroYazılım" metnini yazdıralım :

Görüldüğü gibi kullanımı oldukça basit. Çıktıda verilen 32 değeri dosyaya kaç byte veri yazılacağını ifade ediyor. (32 karakter)

Son olarak da dosyayı kapatmayı unutmayalım :

Dosyamıza bakalım, yazılmış mı? Jupyter notebook uygulamasının ana dizininde dosyamızı bulabilirsiniz:

Dosyanın içine baktığımızda böyle bir hata mesajı alıyoruz. Bu hatayı almamızın sebebi, yazdığımız metin içerisinde Türkçe karakter bulunmasıdır. ElektroYazılım kelimesindeki "ı" harfleri Türkçe karakterdir.

Bir dosyaya TR karakter gireceksek o dosyayı UTF-8 ile kodlamamız (encode) gerekir. Bu hatayı düzeltmek ve dosyayı UTF-8 ile kodlamak için open() fonksiyonuna bir parametre daha eklemeliyiz.

Bu parametreyi eklediğimizde uygulamamızın son hali aşağıdaki gibidir :

Burada encoding ile "utf-8" karakterleri girmek istediğimizi söylemiş oluyoruz. Şimdi uygulamamızı baştan çalıştıralım ve dosyamıza bakalım:

Hata mesajı yerine bizim mesajımız gelmiş.

Ş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

Sort:  

Congratulations @elektroyazilim! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You published a post every day of the week

You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

You can upvote this notification to help all Steem users. Learn how here!

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

You got a 25.00% 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!

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

You got a 92.72% upvote from @luckyvotes courtesy of @elektroyazilim!

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