CodeBlanks Logo Icon CodeBlanks

with deyimi

with open(...) as f: ile otomatik kapatmayı öğrenirsin.

with deyimi otomatik kapatır

Dosyayı açıp close() çağırmayı unutmak yaygın bir hatadır. with deyimi bu sorunu çözer: blok bitince dosya otomatik kapanır. with open("f.txt", encoding="utf-8") as f: yazarsan f dosya nesnesi blok içinde kullanılır; blok çıkışında kapanır.

Bir hata bile oluşsa with dosyayı kapatır. Bu yüzden dosya işlemlerinde her zaman with kullanmak önerilir. Kod daha kısa ve daha güvenli olur.

Uygulama with ile yaz ve oku

İki with bloğu kullan. Birincisinde dosyayı yazma modunda aç: with open("selam.txt", "w", encoding="utf-8") as f: ve blok içinde f.write("Merhaba") yaz. İkincisinde okuma modunda aç: with open("selam.txt", "r", encoding="utf-8") as f: ve blok içinde print(f.read()) yaz. close() çağrısı yapma.

Başlangıç kodu

main.py
# with ile dosyaya Merhaba yaz
# with ile dosyayı oku ve yazdır

Örnek çözüm

main.py
# with ile dosyaya Merhaba yaz
with open("selam.txt", "w", encoding="utf-8") as f:
    f.write("Merhaba")
# with ile dosyayı oku ve yazdır
with open("selam.txt", "r", encoding="utf-8") as f:
    print(f.read())

Beklenen çıktı

Merhaba

Birden çok dosyada with

Aynı with deyiminde birden çok dosyayı yan yana açabilirsin: with open("a.txt") as fa, open("b.txt") as fb:. İki dosya da blok sonunda kapanır.

Python 3.10+ ile parantezli çok satırlı biçim de var: with (open("a.txt") as fa, open("b.txt") as fb):. Bu biçim daha okunaklıdır ve uzun satırları bölmek için idealdir.

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 with kullanmanın en büyük yararı nedir?

  • Blok çıkışında dosya otomatik kapanır Doğru cevap
  • Dosya boyutu küçülür
  • İşlem daha az bellek kullanır
  • Dosya daha hızlı açılır

Açıklama: with bloğu çıkışında dosya otomatik kapanır; hatada bile güvende olur.

2 with deyimini eşleştir

Kavram Anlamı
with Otomatik kapatma
as Bağlama adı
open Dosya açma
close Elle kapatma

3 with deyimini tamamla

Soru
____ open("f.txt", encoding="utf-8") as f:
    print(f.read())
Cevap
with open("f.txt", encoding="utf-8") as f:
    print(f.read())

Açıklama: with deyimi dosyayı otomatik kapatır.

Orta seviye bölümündeki tüm dersler