Path: blob/master/Dosya İşlemleri/Dosyalarda Değişiklik Yapmak.ipynb
765 views
Dosyalarda Değişiklik Yapmak
Bu derste dosyalarda değişiklik yapmayı öğrenmeye çalışacağız. Bunun için 2 farklı yolu öğrenmeye çalışacağız.
seek() ve write()
Eğer biz bir dosyanın belli bir yerine seek() fonksiyonu ile gidip, write() fonksiyonunu kullanırsak, yazdığımız değerler öncesinde bulunan değerlerin üzerine yazılacaktır. Bunun için hem okuma hem de yazma işlemimizi yapmamızı sağlayan "r+" kipini kullanacağız. İlk önce dosyamızda bilgileri görelim.
Bu şekilde bir şeyler yapmak isterseniz bu yöntemi kullanabilirsiniz
Dosyanın Sonunda Değişiklik Yapmak
Bu işlemlerin en kolayıyla başlayalım. Dosyaların sonunda değişiklik yapmak için, dosyamızı "a" kipiyle açalım ve sadece dosyanın sonuna write() ile ekleme yapalım.
Dosyanın Başında Değişiklik Yapmak
"bilgiler.txt" dosyamızın başına bir tane satır eklemek için ne yapabiliriz ? Bunun için dosyamızı bütünüyle string halinde alıp daha sonra satırımızı string'in başına eklememiz gerekiyor. Daha sonra dosyanın en başına seek() fonksiyonuyla giderek ,direk write() fonksiyonunu kullanabiliriz. Hemen yapalım.
İşte bu kadar ! Son olarak da dosyaların ortasında değişiklik yapmayı öğrenmeye çalışalım.
Dosyanın Ortasında Değişiklik Yapmak
Dosyaların ortasına herhangi bir satır eklemek için ilk olarak her bir satırı liste halinde almamızı sağlayan readlines() fonksiyonunu kullanacağız. Daha sonra bu listenin herhangi bir yerine bir eleman ekleyerek bu listeyi for döngüsü ile dosyaya yazacağız.
Örneğin , "Oğuz Artıran" satırının altına bir tane daha satır eklemek istiyoruz. Bunun için bu listenin 3.indeksine insert() metoduyla bir satır ekleyeceğiz. Daha sonra dosyanın en başına giderek bu listeyi tek tek for döngüsü ile yazacağız.
Pythonda bir dosyaya listenin içindeki değerleri yazmak için for döngüsü dışında pratik bir fonksiyon bulunuyor. writelines fonksiyonu içine verdiğimiz listeyi dosyaya yazacaktır.
İşte bu kadar ! Gördüğünüz gibi dosyalarda işlem yapabilmek için biraz fazla düşünmemiz gerekiyor. İlk başta zorlanacağınızdan eminim . Zorlandığınız zaman sorularınızı her zaman sorabilirsiniz.