with deyimi
- Python kursu
- Orta seviye
- Ders 67/116
- 5 dk
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
# with ile dosyaya Merhaba yaz
# with ile dosyayı oku ve yazdırÖrnek çözüm
# 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
____ open("f.txt", encoding="utf-8") as f:
print(f.read())
with open("f.txt", encoding="utf-8") as f:
print(f.read())
Açıklama: with deyimi dosyayı otomatik kapatır.