Dosya İşlemleri #2 - Python Dersleri (Tutorials)
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.
Kaynak belirtilmeyen görseller bana aittir. The pictures without source in the post is belong to me
Congratulations @elektroyazilim! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
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!
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!