Başlarken: Python’da İlk Dosya Yazmanız
Python’da dosya yazmayı anlamanın en hızlı yolu, gerçekten yapmaktır. En basit örnekle başlayalım ve üzerine kuralım.
Temel kalıp (adım adım)
Özünde, bir dosyaya yazmak basit bir kalıbı izler:
- Bir dosya açın
- İçerik yazın
- Dosyayı kapatın
Python, ilk adımı yönetmek için yerleşik open() fonksiyonunu sağlar.
open() fonksiyonu, basitçe açıklama
open() fonksiyonu Python kodunuzu diskteki bir dosyaya bağlar. Ona iki şey söylersiniz:
- Hangi dosyayla çalışmak istediğiniz
- Onunla nasıl çalışmak istediğiniz
Yazma için en yaygın kip "w"’dir; write (yaz) anlamına gelir. Dosya yoksa Python oluşturur. Varsa, Python üzerine yazar.
file = open("example.txt", "w")
file.write("Hello, world!")
file.close()
Bu betiği çalıştırın; Python kodunuzla aynı dizinde example.txt adlı bir dosya oluşturur.
Peki az önce ne oldu?
-
open("example.txt", "w")dosyayı açar veya oluşturur -
write()metni dosyaya gönderir -
close()veriyi yazar ve dosyayı serbest bırakır
Bu çalışır, ancak uzun vadede dosya yazmanın doğru yolu değildir.
Python’da Doğru Yol: Bağlam Yöneticileri Kullanmak
Dosyaları elle açıp kapatmayı unutmak kolaydır ve hata yapmaya açıktır. Bu yüzden Python bağlam yöneticilerini kullanmayı teşvik eder.
Neden with kullanmak daha iyidir? with kullanmak, yazma sırasında bir şeyler ters gitse bile dosyanın her zaman düzgün şekilde kapanmasını sağlar. Kodu daha güvenli ve okunur hale getirir.
with open("example.txt", "w") as file:
file.write("Hello, world!")
with bloğu bittiğinde Python dosyayı otomatik olarak kapatır. Bu kalıp profesyonel Python kodunda her yerde karşınıza çıkar ve ezberlemeye değerdir. Bunu Python Programming beceri yolumuzda ve Writing Clean Python Code kursumuzda tekrar tekrar göreceksiniz.
Bir Python Dosyaya Yazma Örneği
Bunu biraz daha gerçekçi bir şeye uygulayalım. Burada günlük bir günce girdisi oluşturacağım.
from datetime import date
today = date.today().isoformat()
with open("journal.txt", "a", encoding="utf-8") as file:
file.write(f"{today}: Practiced writing files in Python.\n")
Bu iki önemli fikri tanıtır:
-
Ek kip (
"a") -
Yapılandırılmış, tekrarlanabilir girdiler yazmak
-
Her çalıştırma eski girdileri silmeden yeni bir satır ekler.
Dosya Kiplerini Anlamak: w, a, x ve r+ ne zaman kullanılır
Bir dosyaya nasıl yazılacağını öğrendikten sonra, en önemli karar onu nasıl açacağınızdır. Dosya kipleri, verinin üzerine yazılıp yazılmayacağını, korunup korunmayacağını veya güvenceye alınıp alınmayacağını kontrol eder.
Yazma kipi (w): Baştan başlamak
Yazma kipi dosya yoksa oluşturur. Varsa da üzerine yazar.
with open("report.txt", "w") as file:
file.write("Daily sales report\n")
Temiz bir başlangıç istediğinizde bunu kullanın. Dikkatli olun; bu kip mevcut veriyi sessizce siler.
Ek kipi (a): Veriyi kaybetmeden ekleme
Ek kipi içeriği dosyanın sonuna ekler.
with open("activity.log", "a") as file:
file.write("User logged in\n")
Günlükler ve artımlı kayıtlar için idealdir ve üretim sistemleri için en güvenli kiplerden biridir.
Özel kipi (x): Güvenli dosya oluşturma
Özel kip, dosya zaten yoksa oluşturur.
try:
with open("config.txt", "x") as file:
file.write("initialized=true")
except FileExistsError:
print("File already exists.")
Üzerine yazmanın riskli olacağı kurulum betikleri için kullanışlıdır.
Okuma-yazma kipi (r+): Mevcut dosyaları değiştirme
Bu kip okumaya ve yazmaya izin verir ancak dosyanın var olmasını gerektirir.
with open("notes.txt", "r+") as file:
content = file.read()
file.write("\nNew note added.")
Yazma, mevcut dosya imleci konumunda gerçekleşir; bu nedenle burada imleç hareketini anlamak önemlidir.
Peki hangi kipi kullanmalısınız? Benim zihinsel rehberim şöyle:
-
Mevcut verinin üzerine yaz →
w -
Veriyi koru ve üzerine ekle →
a -
Üzerine yazmayı önle →
x -
Aynı dosyayı oku ve güncelle →
r+
Bu karar sürecini görsel olarak pekiştirmek için:

Doğru dosya kipini seçmek genellikle niyete bağlıdır: üzerine yaz, ekle, koru veya değiştir.
Python’da Farklı Türde İçerik Yazmak
Doğru kiple dosya açmaya alıştıktan sonra, bir sonraki soru gerçekte ne yazdığınızdır.
Gerçek programlarda her zaman tek bir dize yazmıyorsunuz. Listeler kaydedebilir, sonuçları dışa aktarabilir veya görseller ya da PDF’ler gibi metin olmayan verilerle çalışabilirsiniz. Bu bölümde, farklı türde içeriği dosyalara güvenli ve verimli bir şekilde nasıl yazacağınızı öğreneceksiniz.
Metin ve dizeler yazma
En basit durum düz metin yazmaktır. Python bunun için iki ana yöntem sunar: write() ve writelines().
write() size verdiğinizi olduğu gibi yazar, otomatik satır sonu eklemez.
with open("example.txt", "w") as file:
file.write("First line\n")
file.write("Second line\n")
write() ve writelines() karşılaştırması
Temel fark basittir: write() her seferinde bir dize yazar; writelines() ise bir dize dizisini olduğu gibi yazar; writelines() sizin yerinize satır sonu eklemez, bu yüzden her öğe zaten \n ile bitmelidir.
Pratikte, okunması daha kolay olduğu için birçok geliştirici döngü içinde hâlâ write() kullanmayı tercih eder.
lines = ["One\n", "Two\n", "Three\n"]
with open("example.txt", "w") as file:
file.writelines(lines)
Listeleri verimli şekilde yazma
items = ["apple", "banana", "cherry"]
content = "\n".join(items)
with open("fruits.txt", "w") as file:
file.write(content)
Önce birleştirmek, tekrar eden disk yazmalarını azaltır; bu, daha büyük veri kümelerinde önemlidir.
İkili veri yazma
Metin olmayan dosyalar için ikili kip ("wb") gereklidir.
binary_data = b"\x89PNG\r\n\x1a\n"
with open("image.bin", "wb") as file:
file.write(binary_data)
Python’da Kodlamalarla Çalışmak (Metniniz Neden Bozuk Görünüyor)
Kodlama sorunları, dosya işlemlerindeki en yaygın—ve en can sıkıcı—hatalardan biridir.
Her zaman UTF-8 belirtin
Açık kodlama, aşağıda göreceğiniz gibi çapraz platform sorunlarını ve bozuk karakterleri önler:
with open("example.txt", "w", encoding="utf-8") as file:
file.write("Café, résumé, naïve")
Gerçek dünya örneği: Çok dilli metin
Burada açık olmak, ileride saatlerce hata ayıklamayı kurtarır. Demek istediğim şu:
customers = ["Ana García", "François Dupont", "Miyuki 山田"]
with open("customers.txt", "w", encoding="utf-8") as file:
for name in customers:
file.write(name + "\n")
İleri Düzey Python Yazma Teknikleri
Python’da dosya yazmaya alıştıktan sonra, bir sonraki sorun seti genellikle nasıl yazılacağı değil de bunun nasıl güvenli ve verimli yapılacağıdır. Büyük dosyalar, beklenmeyen çöküşler ve performans darboğazları burada henüz ele almadığımız uç durumları ortaya çıkarır.
Büyük dosyaları parça parça yazarak yönetme
Akış halinde çıktı almak bellek kullanımını düşük tutar:
def generate_lines():
for i in range(1_000_000):
yield f"Line {i}\n"
with open("large.txt", "w", encoding="utf-8") as file:
for line in generate_lines():
file.write(line)
Atomik yazma: Bozulmayı önlemek
Buradaki fikir, bir program güncelleme ortasında çökerse kısmi yazmaları önlemektir.
import os, tempfile
def atomic_write(path, content):
with tempfile.NamedTemporaryFile("w", delete=False) as tmp:
tmp.write(content)
os.replace(tmp.name, path)
Metin Dosyalarının Ötesinde: JSON ve CSV Yazma
Veriniz yapı kazandığında, düz metin en iyi seçenek olmaktan çıkar. Python, JSON ve CSV gibi yaygın yapılandırılmış biçimleri yazmayı kolaylaştırır; böylece veriyi daha sonra paylaşması, incelemesi ve işlemesi daha kolay bir şekilde saklayabilirsiniz.
JSON yazma
Sözlüklerle veya iç içe geçmiş verilerle çalışırken, JSON genellikle yazmak için en doğal biçimdir. Python’un yerleşik json modülü dönüşümü sizin için halleder; dizeleri elle biçimlendirmenize gerek kalmaz.
import json
data = {"id": 1, "name": "Jeremiah"}
with open("user.json", "w", encoding="utf-8") as file:
json.dump(data, file, indent=2)
CSV yazma
Veriniz tabularsa ve elektronik tablolar ya da BI araçlarında açılacaksa, CSV daha uygundur. csv modülü, ayırıcılar veya tırnaklama hakkında endişelenmeden satırları güvenle yazmanıza yardımcı olur.
import csv
rows = [{"id": 1, "name": "Alice"}, {"id": 2, "name": "Bob"}]
with open("users.csv", "w", newline="", encoding="utf-8") as file:
writer = csv.DictWriter(file, fieldnames=["id", "name"])
writer.writeheader()
writer.writerows(rows)
Python’da Dosyaya Yazmada Yaygın Hatalar
Python’da dosyaya yazmak basit olsa da, birkaç küçük hata gerçek dünyadaki sorunların çoğuna neden olur. Bu problemler genellikle sözdizimiyle ilgili değildir; kaynak yönetimi, dosya kipleri veya performans tercihleri gibi gözden kaçan ayrıntılardan kaynaklanır.
Aşağıdaki noktaları aklınızda tutun.
-
Dosyaları kapatmayı unutmak →
‘with’kullanın -
İstenmeden verinin üzerine yazmak → kipleri iki kez kontrol edin
-
Kodlamayı göz ardı etmek → her zaman UTF-8 belirtin
-
Büyük dosyaları verimsiz yazmak → çıktıyı toplu ya da akış halinde verin
Buradaki hataların çoğu karmaşık mantıktan değil, küçük gözden kaçmalardan kaynaklanır.
Sonuç
Python’da dosyalara yazmak basit başlar, ancak gerçek dünya programları daha fazla özen ister. Bu rehberde, ilk dosya yazımınızdan güvenli dosya kipleri seçmeye, kodlamaları doğru ele almaya, yapılandırılmış veriyi dışa aktarmaya ve üretim ortamına uygun kalıpları uygulamaya kadar ilerlediniz.
Ana mesaj niyettir: doğru kipi seçin, kodlamayı açık belirtin ve veri önemliyken savunmacı yazın.

Yapay zekâ, makine öğrenimi ve veri bilimi alanlarında uzmanlaşmış teknik yazar; karmaşık fikirleri anlaşılır ve erişilebilir kılar.
SSS
Python dosyaları eşzamanlı olmayan (asenkron) şekilde yazabilir mi?
Evet, aiofiles gibi kütüphanelerle; ancak çoğu betik buna ihtiyaç duymaz.
En güvenli yazma kipi hangisi?
Niyete bağlı olarak ek ("a") veya özel ("x").
Metnim neden bozulmuş?
Kodlama uyumsuzluğu—her zaman UTF-8 kullanın.
Dosyam nereye kaydediliyor?
Betiğin çalışma dizinine göre.
pathlib kullanmalı mıyım?
Evet; daha temiz ve çapraz platform uyumlu yol işlemleri için.

Bir noktada her Python programının bir şeyleri kaydetmesi gerekir: günlükler, sonuçlar, kullanıcı girdileri, yapılandırma dosyaları veya işlenmiş veriler. Analiz sonuçlarını dışa aktarıyor, betiğinizin ne yaptığını kaydediyor ya da uygulama durumunu çalıştırmalar arasında kalıcı hale getiriyor olabilirsiniz. Durum ne olursa olsun, dosyalara yazmak tekrar tekrar kullanacağınız temel bir Python becerisidir.
Bu rehberde, standart kütüphaneyi kullanarak Python’da dosyalara nasıl yazacağınızı öğreneceksiniz. Temellerle başlayıp dosya kipleri, kodlamalar, JSON ve CSV gibi yapılandırılmış biçimler ve kodunuzu daha güvenli ve öngörülebilir kılan üretim kalıplarına doğru ilerleyeceğiz. Sonunda, sadece oyuncak örneklerde değil, gerçek uygulamalarda da dosya yazma konusunda kendinize güveneceksiniz.
Python temellerinde rahatsanız, bu öğretici betiklerle profesyonel düzeyde dosya işlemleri arasındaki boşluğu kapatmanıza yardımcı olur. İlerlerken temelleri pekiştirmek isterseniz, bizim Introduction to Python ve Intermediate Python kurslarımız bu anlatımla iyi bir ikili oluşturur.