Python’da zamanla üzerinde işlemler yaptığımız bilgileri kalıcı olarak kaydetmek isteyebiliriz, bu sepeble de bilgileri dosyalara kaydederiz. Bu dosyalar genelde csv, json da olabilir; sql yada txt gibi formatlar da, bu kısım programcının ihtiyacına göre şekillenir.
Temel Dosya İşlemleri
Temelde iki dosya tipi vardır, bunlar metin ve binary‘dir.
Ulaşmak istenen dosyaları açarken bazı dosya kipleri kullanılır. Temelde üç adettir, çeşitleri türetilip kullanılabilir.
Üç Temel Kip
KİP | GÖREVİ | DOSYA YOKSA | DOSYA VARSA |
r | Okuma | Hata verir | Okur |
w | Yazma | Oluşturur | Üstüne yazar |
a | Ekleme | Hata verir | Ekleme yapar |
Temel Kiplerin Ekleri
- “r” kipinin sonuna “+” ifadesi geldiğinde o kipin yazma yetkisiyle de açılacağını eğer kip “w” veya “a” ise aynı anda okuma kipiyle de açılacağını belirtir.
- Kipin bir karakter sağına “b” ifadesinin gelmesi üzerinde işlen yapılacak dosyayının binary olarak ele alınmasını sağlar.
Örnekler
- “r+”, hem okuma hem de yazma.
- “w+”, “a+”, hem okuma hem de yazma.
- “rb+”, binary olarak okuma ve yazma.
- “ab”, binary olarak ekleme.
Örnekler
“test.txt” isimli bir dosya oluşturup içerisine rastgele bir girdi yapalım.
fpn = open("test.txt", "w")
fpn.write("Lorem ipsum dolor sit amet...")
fpn.close()
Dosyayı oluşturmak için open fonksiyonunu kullandık. “test.txt” “w” parametreleri ile dosyanın adını, formatını ve hangi kiple açılacağını belirttik, bu sayede dosyamız olşuturuldu. “write” fonksiyonu ile dosyaya veriyi yazdık.
Burada dikkat edilmesi gereken bir hususta açılan dosyanın kapatılmasıdır. Dosya açıldığında eğer içerisinde bilgi varsa bellekte tutulur. Bu işlemin her seferinde gerçekleşmesi bir süreden sonra belleği şişirir. Üzerinde işlem yaptığımız dosyaların içerisindeki bilginin boyutu az olduğundan şu an için bir problem değil.
Bu problemin önüne geçmek için pratik bir çözüm mevcut. Bu çözümü diğer bir örneği kullanarak açıklayalım.
with open("test.txt", "r") as fpn:
print(fpn.read())
Dosyayı with ile açtık ve as ifadesiyle bir değişkene atadık. Dosyadan bilgiyi “read” ile okuduktan sonra da dosya kendiliğinde kapatıldı.
with open("test.txt", "a") as fpn:
fpn.write(" blaBla")
Dosyamıza ” blaBla” bilgisini ekledik.
Okuma Fonksiyonları
FONKSİYON | GÖREV |
read(n) | Girilen n değeri kadar veri okur. Değer girilmezse bütün dosyayı okur. |
readline() | Dosyadan satır okur. |
readlines() | Dosyadan satırları okur ve liste biçiminde çıktı veriri. |
Yazma Fonksiyonları
FONKSİYON | GÖREV |
write() | Dosya içerisine belirtilen stringi yazar. |
writelines() | Dosya içerisine belirtilen listeyi yazar. Liste içerisinde değişik veriler bulunabilir. |
Seek ve Tell
seek(n) fonksiyonu imlecin dosya içerisinde n değerinde konumlanacağını belirtir, tell() ise imlecin nerede olduğunu gösterir.
- Coronavirüs Hakkında Bilgiler ve Bilinen Yanlışlar - 26/11/2020
- Tanrı Parçacığı - 16/06/2020
- #P3.3 – Dosya İşlemleri - 09/06/2020