İçeriğe geç

Menü

Berk Akademi
Birebir ders başvurusu Ücretsiz ön görüşme Ana Sayfa

Python Dosyaya Veri Yazma Nasıl Yapılır? write ve append Kullanımı

python-dosyaya-veri-yazma-write-append-kullanimi
Bu yazıda neler var?
  1. Python dosyaya veri yazma nasıl yapılır?
  2. open(), write() ve satır sonu nasıl kullanılır?
  3. writelines() satır sonlarını neden kendiliğinden eklemez?
  4. Göreli ve mutlak dosya yolu arasındaki fark nedir?
  5. Aynı dosyada önce w, sonra a ile not ekleme
  6. Sık Sorulan Sorular

Python dosyaya veri yazma işlemi için open() çağrısında yeni içerik oluşturmak veya mevcut içeriği yenilemek istediğinde w, dosyanın sonuna yeni bilgi eklemek istediğinde a modunu kullanabilirsin. Dosyayı with open() yapısıyla açtığında, yazma bloğu sona ererken dosya düzenli biçimde kapatılır. w modu var olan dosyanın içeriğini açılışta temizleyebildiği için eski notların kaybolabileceği unutulmamalıdır; a modu ise mevcut içeriği koruyup yeni veriyi dosyanın sonuna ekler.

Bu işlemde mod, dosyanın mevcut içeriğine ne olacağını belirler. Yazdığın metnin içindeki n karakteri ise satırların nasıl ayrılacağını belirler. Böylece dosyayı açma biçimiyle metnin biçimlendirilmesini birbirinden ayırabilirsin.

Python dosyaya veri yazma nasıl yapılır?

open() çağrısında dosyaya veri yazmak için temel olarak üç bilgi verilir:

  • Dosya yolu: Verinin yazılacağı dosyanın adı veya konumu. Örnekte bu değer mesaj.txt şeklindedir.
  • Mod: w yazma ve mevcut içeriği yenileme, a ise append, yani dosyanın sonuna ekleme amacıyla kullanılır.
  • Encoding: Metnin hangi karakter kodlamasıyla işleneceğini belirtir. Türkçe karakterler içeren metinlerde encoding='utf-8' kullanmak iyi bir uygulamadır.

w ile açılan dosya zaten varsa eski içerik yazma işleminden önce temizlenir. Bu nedenle dosyada korunması gereken notlar bulunduğunda w kullanmadan önce mod seçimini kontrol etmelisin. a modunda ise yeni metin mevcut içeriğin arkasına yazılır. with yapısı, dosya üzerinde yapılan işlemler tamamlandığında dosyanın güvenli biçimde kapatılmasını yönetir.

open(), write() ve satır sonu nasıl kullanılır?

open(), write() ve satır sonu nasıl kullanılır?

write() yöntemi, verdiğin metni dosyaya yazar. Ancak yeni satırı kendiliğinden eklemez. Satırların ayrı görünmesi için yazılacak metnin sonuna n satır sonu karakterini eklemelisin.

with open('mesaj.txt', 'w', encoding='utf-8') as dosya:
    dosya.write('İlk satırn')
    dosya.write('İkinci satırn')

İlk write() çağrısından hemen sonra dosyanın görünen içeriği şöyledir:

İlk satır

İkinci write() çağrısından sonra iki metin, satır sonu karakterleri sayesinde ayrı satırlarda görünür:

İlk satır
İkinci satır

Burada with open() bloğu sona erdiğinde dosya kapatılır. Bu nedenle örnekte ayrıca close() çağrısı yazmaya gerek yoktur. Dosyayı açık bırakmamak, yazma işleminin düzenli biçimde tamamlanmasına yardımcı olur.

writelines() satır sonlarını neden kendiliğinden eklemez?

writelines() satır sonlarını neden kendiliğinden eklemez?

write() tek bir metni dosyaya yazar. writelines() ise metinlerden oluşan bir listeyi veya başka bir yinelenebilir yapıyı sırayla dosyaya aktarır. Ancak writelines() öğelerin arasına otomatik olarak satır ayırıcı eklemez. Her öğe hangi karakterleri içeriyorsa dosyaya onlar yazılır. Python resmî belgelerinde de bu yöntemin satır ayırıcıları kendiliğinden eklemediği belirtilir.

with open('satirlar.txt', 'w', encoding='utf-8') as dosya:
    dosya.writelines(['Birinci satırn', 'İkinci satırn'])

Bu kod çalıştıktan sonra satirlar.txt dosyasının içeriği iki satırdan oluşur:

Birinci satır
İkinci satır

Liste öğelerindeki n karakterlerini çıkarırsan satır ayrımı oluşmaz ve metinler arka arkaya yazılır:

Birinci satırİkinci satır

Bu nedenle writelines() kullanırken satır sonunu metinle birlikte açıkça vermelisin. a modunda ekleme yaparken de Python kendiliğinden yeni satır üretmez. Eklenen metnin yeni bir satırda başlamasını veya bitmesini istiyorsan uygun yere n karakterini koymalısın. a modu veriyi dosyanın sonuna ekler, satır düzenini ise yazdığın metin belirler.

Göreli ve mutlak dosya yolu arasındaki fark nedir?

Dosya yolu, dosyanın hangi konumda açılacağını belirler. notlar.txt gibi göreli bir yol, programın geçerli çalışma dizinine göre değerlendirilir. Çalışma dizini, kod dosyanın bulunduğu klasörle aynı olmak zorunda değildir. Programı farklı bir klasörden başlattığında aynı göreli yol başka bir konumu gösterebilir. Mutlak yol ise konumu kök dizinden veya Windows'ta sürücü başlangıcından açıkça belirtir. Python'ın open() belgelerinde de göreli yolların geçerli çalışma dizinine göre yorumlandığı açıklanır.

Yol türü Örnek Yolun dayandığı yer Temel kullanım notu
Göreli yol notlar.txt Programın geçerli çalışma dizini Çalışma dizinine göre dosya açmak için kullanılır.
Mutlak yol /home/kullanici/proje/notlar.txt
C:projelernotlar.txt
Kök dizin veya sürücü başlangıcı Belirli bir dosya konumunu açıkça belirtir.

Yol türü yazma modunu değiştirmez; yalnızca dosyanın nerede açılacağını söyler. w içeriği yeniden yazma, a ise dosyanın sonuna ekleme davranışını belirler. Bu yüzden aynı göreli veya mutlak yol, seçtiğin moda göre farklı sonuç verebilir.

Aynı dosyada önce w, sonra a ile not ekleme

w modu dosyayı yazmak için açar ve dosya zaten varsa mevcut içeriği değiştirebilir. a modu ise yeni metni dosyanın sonuna ekler. Her with open() bloğu sona erdiğinde dosya otomatik olarak kapatılır. Aşağıdaki tek örnekte önce iki not kaydediliyor, ardından aynı dosyaya üçüncü bir not ekleniyor.

notlar = ['Bugün dosyaya veri yazmayı öğrendim.n', 'İlk notumu w modu ile kaydettim.n']

with open('notlar.txt', 'w', encoding='utf-8') as dosya:
    dosya.writelines(notlar)

with open('notlar.txt', 'a', encoding='utf-8') as dosya:
    dosya.write('Yeni bir notu a modu ile ekledim.n')

Adım 1: w modu ile ilk kayıt

İlk with bloğu çalıştığında writelines(notlar), listedeki iki metni dosyaya yazar. Her metnin sonunda n bulunduğu için dosyada iki ayrı satır oluşur.

Adım 1 sonunda notlar.txt içeriği yalnızca şu iki satırdır:

Bugün dosyaya veri yazmayı öğrendim.
İlk notumu w modu ile kaydettim.

Bu sonuç, w modunun önemli bir özelliğini gösterir. Dosyada daha önce farklı notlar varsa, dosya açılırken bu içerik korunmayabilir ve yeni kayıt bu iki satır üzerinden oluşturulur.

Adım 2: a modu ile yeni not ekleme

İkinci with bloğu aynı dosya yolunu a modunda açar. write() çağrısı, ilk iki satırın sonuna üçüncü notu ekler. İlk satırlar n ile bittiği için yeni not ayrı bir satırda görünür.

Adım 2 sonunda dosya içeriği şöyledir:

Bugün dosyaya veri yazmayı öğrendim.
İlk notumu w modu ile kaydettim.
Yeni bir notu a modu ile ekledim.

Temel Python konularını sıfırdan pekiştirmek için Berk Akademi'nin ücretsiz Sıfırdan Temel Python video eğitimine göz atabilirsin.

Sık Sorulan Sorular

w modu mevcut dosyanın içeriğini neden değiştirebilir?

w modu dosyayı yazma işlemi için açarken mevcut içeriği keser. Ardından yazılan metin, dosyanın yeni içeriğini oluşturur. Bu nedenle önceden bulunan satırlar korunmayabilir.

a modu ile eklenen metin neden önceki satıra bitişebilir?

Dosyanın mevcut içeriği n ile bitmiyorsa, a modu ile eklenen metin son karakterin hemen arkasından başlar. Ayrı satır için mevcut içeriğin veya eklenecek metnin satır sonu karakteri içermesine dikkat etmelisin.

writelines() kullanırken satır sonlarını nasıl eklerim?

writelines() satır sonlarını kendiliğinden eklemez. Her metnin sonuna n koyabilirsin: ['Birinci satırn', 'İkinci satırn'].

Göreli dosya yolu hangi çalışma dizinine göre değerlendirilir?

notlar.txt gibi göreli bir dosya yolu, Python programını çalıştıran sürecin geçerli çalışma dizinine göre değerlendirilir. Bu dizin, dosyanın bulunduğu klasörle her zaman aynı olmayabilir.

Bu temel akışla Python’da dosyaya ilk kayıt ile sonradan not ekleme arasındaki farkı aynı dosya üzerinde görebilirsin.

Bu içerik aradığın cevabı verdi mi?
Yanıtın, hangi yazıları geliştirmemiz gerektiğini anlamamıza yardımcı olur.
Bu içeriğin üretilmesinde yapay zeka araçlarından destek alınmıştır.

Bu konudan sonra ne okuyabilirsin?

Tüm yazılar

İlgili Eğitimler

Berk Keskin, yazılım geliştirici ve eğitmen
Yazar

Berk Keskin Kimdir?

Yazılıma 12 yaşında başladı; İzmir Ekonomi Üniversitesi'ni bölüm birincisi ve yüksek şeref öğrencisi olarak tamamladı. Bugün yalnızca eğitim vermekle kalmıyor, sektörde aktif olarak yazılım projeleri geliştiriyor ve gerçek dünya deneyimini birebir derslerine taşıyor. Ezberden uzak, mühendislik zihniyetini merkeze alan sürdürülebilir öğrenme sistemleri tasarlayarak sorgulayan, üreten ve problem çözebilen yeni nesil yazılımcılar yetiştiriyor.

Sektörel Deneyim & Projeler

  • Ticarify Entegrasyon Yazılım logosu CEO Ticarify Entegrasyon YazılımPazaryerleri ve e-ticaret sitelerine otomatik e-fatura kesimi, sipariş ve kargo takibi hizmetleri sunan e-Dönüşüm platformunun API mimarisini ve yazılım ekibini yönetmektedir.
  • Benim Düğünüm logosu CEO Benim DüğünümDijital etkinlik ve anı paylaşım platformu.
  • Siberdizayn logosu Yazılım Ekibi Lideri SiberdizaynYüksek anlık oyuncu trafiğine sahip oyun kontrol panelleri ve sunucu altyapıları geliştiren yazılım ekibine liderlik etmektedir.
  • MEDYOGRAFYA 360° Dijital Çözümler logosu Dijital Strateji Lideri MEDYOGRAFYA 360° Dijital ÇözümlerŞirketlerin dijital çözümlerde uzun vadede nasıl ilerlemesi gerektiği ve dijital dönüşüm süreçlerinin yönetilmesine destek olmaktadır.
  • İzmir Ekonomi Üniversitesi logosu Danışma Kurulu Üyesi İzmir Ekonomi ÜniversitesiMezun olduğu üniversitesinde, Bilgisayar Programcılığı bölümünün akademik müfredatını güncel sektör ihtiyaçlarına göre şekillendirmek adına Danışma Kurulu'nda görev almaktadır.
WhatsApp Hemen Ara