[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-python-ile-dosya-okuma-ve-yazma-kisa-kod-snippetleri":3},{"dataItem":4,"heading":36,"metaData":38,"schema":81},["Reactive",5],{"id":6,"title":7,"summary":8,"content":9,"seo_title":10,"seo_description":11,"seo_keywords":12,"slug":13,"createdAt":14,"updatedAt":14,"blog_categories":15,"authors":19,"image":24,"thumb":25,"image_webp":26,"thumb_webp":27,"rating":28,"heading_title":7,"heading_sub_title":17,"readingTime":29,"url":34,"comments":35,"meta_cover":24},39251,"Python ile dosya okuma ve yazma: kısa kod snippetleri","Bu makale, Python'da dosya okuma ve yazma işlemleri için kısa, kullanışlı kod snippetleri ve en iyi uygulamaları örneklerle açıklar.","\u003Ch2>Python ile dosya okuma ve yazma: kısa kod snippetleri\u003C/h2>\n\u003Cp>Dosya girdi/çıktısı (I/O) çoğu uygulamada temel bir gereksinimdir: konfigürasyonları okumak, sonuçları kaydetmek veya ikili verileri kopyalamak gibi. Bu yazıda Python'da en sık kullanılan yöntemleri, kısa ve doğrudan kod snippetleriyle gösteriyorum. Temel konular: \u003Cstrong>open()\u003C/strong>, modlar, \u003Cstrong>with\u003C/strong> kullanımı ve \u003Cstrong>encoding\u003C/strong> parametresi. (Kaynak: \u003Ca href='https://docs.python.org/tr/3/tutorial/inputoutput.html'>Python 3 Girdi ve Çıktı — Resmi Belgelendirme\u003C/a>.)\u003C/p>\n\n\u003Ch3>Temel open() kullanımı ve modlar\u003C/h3>\n\u003Cp>Dosya açmak için Python'da \u003Cem>open()\u003C/em> fonksiyonu kullanılır. Temel görünüm: \u003Cem>open(path, mode='r', encoding=None)\u003C/em>. Mode (mod) parametresi, dosyayla nasıl etkileşim kurulacağını belirler. Aşağıda sık kullanılan modların kısa özeti bulunur:\u003C/p>\n\u003Cul>\n  \u003Cli>\u003Cstrong>'r'\u003C/strong>: Okuma (varsayılan). Dosya yoksa hata verir.\u003C/li>\n  \u003Cli>\u003Cstrong>'w'\u003C/strong>: Yazma — var olan dosyayı siler ve yeniden oluşturur.\u003C/li>\n  \u003Cli>\u003Cstrong>'a'\u003C/strong>: Ekleme — yazılan veri dosya sonuna eklenir.\u003C/li>\n  \u003Cli>\u003Cstrong>'x'\u003C/strong>: Yeni dosya oluşturur; dosya zaten varsa hata verir.\u003C/li>\n  \u003Cli>\u003Cstrong>'r+'\u003C/strong>: Okuma ve yazma (dosya mevcut olmalıdır).\u003C/li>\n  \u003Cli>\u003Cstrong>'rb', 'wb', 'ab'\u003C/strong>: Binary modları — bytes (ikili veri) ile çalışırken kullanın.\u003C/li>\n\u003C/ul>\n\u003Cp>Daha fazla ayrıntı ve ileri seçenekler için resmi belgelendirmeye bakabilirsiniz: \u003Ca href='https://docs.python.org/tr/3/tutorial/inputoutput.html'>https://docs.python.org/tr/3/tutorial/inputoutput.html\u003C/a>.\u003C/p>\n\n\u003Ch3>with open ile güvenli dosya işlemleri\u003C/h3>\n\u003Cp>\u003Cstrong>with\u003C/strong> bağlam yöneticisi, dosyanın otomatik olarak kapatılmasını sağlar; istisna oluşsa bile \u003Cem>close()\u003C/em> çağrılır. Bu, çoğu senaryo için en güvenli ve okunaklı yaklaşımdır.\u003C/p>\n\u003Cblockquote>with open('ornek.txt', 'r', encoding='utf-8') as f:\u003Cbr>    icerik = f.read()\u003Cbr>print(icerik)\u003C/blockquote>\n\n\u003Ch3>Kısa kod snippetleri\u003C/h3>\n\u003Cp>Aşağıda günlük görevler için kısa ve doğrudan örnekler bulunur. Her örnek sonrası kısa açıklama yer alır.\u003C/p>\n\n\u003Ch4>Dosyayı tümüyle okumak\u003C/h4>\n\u003Cblockquote>with open('dosya.txt', 'r', encoding='utf-8') as f:\u003Cbr>    text = f.read()\u003Cbr>print(text)\u003C/blockquote>\n\u003Cp>\u003Cem>read()\u003C/em>, dosyanın tamamını bir string olarak döndürür. Küçük-orta boy dosyalar için uygundur; çok büyük dosyalar belleği doldurabilir.\u003C/p>\n\n\u003Ch4>Satır satır okumak\u003C/h4>\n\u003Cblockquote>with open('dosya.txt', 'r', encoding='utf-8') as f:\u003Cbr>    for line in f:\u003Cbr>        print(line.rstrip())\u003C/blockquote>\n\u003Cp>Dosyayı satır satır işlemek için bu yöntem hem okunaklı hem de bellek açısından verimlidir. \u003Cem>rstrip()\u003C/em> ile satır sonu karakterlerini temizleyebilirsiniz.\u003C/p>\n\n\u003Ch4>Büyük dosyalar için parça parça (chunk) okuma\u003C/h4>\n\u003Cblockquote>with open('buyuk_dosya.txt', 'r', encoding='utf-8') as f:\u003Cbr>    while True:\u003Cbr>        chunk = f.read(1024)  # 1 KB bloklar\u003Cbr>        if not chunk:\u003Cbr>            break\u003Cbr>        # chunk üzerinde işlem yapın\u003C/blockquote>\n\u003Cp>Büyük dosyaları parça parça okuyarak bellek kullanımını sınırlandırabilirsiniz. Boyutu uygulamanıza göre ayarlayın (ör. 4096 veya 8192).\u003C/p>\n\n\u003Ch4>Yazma ve ekleme\u003C/h4>\n\u003Cblockquote>with open('yeni.txt', 'w', encoding='utf-8') as f:\u003Cbr>    f.write('Merhaba Dünya\\n')\u003C/blockquote>\n\u003Cp>\u003Cstrong>'w'\u003C/strong> modu dosyayı sıfırlar (truncate). Var olan veriyi kaybetmemek için dikkat edin.\u003C/p>\n\u003Cblockquote>with open('yeni.txt', 'a', encoding='utf-8') as f:\u003Cbr>    f.write('Yeni satır\\n')\u003C/blockquote>\n\u003Cp>\u003Cstrong>'a'\u003C/strong> modu ile dosya sonuna ekleme yapılır; mevcut veri korunur.\u003C/p>\n\n\u003Ch4>Okuma ve yazma ('r+')\u003C/h4>\n\u003Cblockquote>with open('hesap.txt', 'r+', encoding='utf-8') as f:\u003Cbr>    data = f.read()\u003Cbr>    f.seek(0)\u003Cbr>    f.write('Başlık: Yeni içerik\\n')\u003C/blockquote>\n\u003Cp>\u003Cstrong>'r+'\u003C/strong> ile hem okuma hem yazma yapabilirsiniz. Ancak yazma sırasında dosyanın üzerine yazma (overwrite) gerçekleşebilir; pozisyon (seek) kullanımı önemlidir.\u003C/p>\n\n\u003Ch4>Binary dosya örneği: dosya kopyalama\u003C/h4>\n\u003Cblockquote>with open('kaynak.jpg', 'rb') as src:\u003Cbr>    with open('hedef.jpg', 'wb') as dst:\u003Cbr>        while True:\u003Cbr>            chunk = src.read(8192)\u003Cbr>            if not chunk:\u003Cbr>                break\u003Cbr>            dst.write(chunk)\u003C/blockquote>\n\u003Cp>İkili veriler (görüntü, ses, vb.) için \u003Cstrong>'rb'\u003C/strong> ve \u003Cstrong>'wb'\u003C/strong> modlarını kullanın. Metin kodlaması uygulanmaz; bytes doğrudan okunup yazılır.\u003C/p>\n\n\u003Ch4>JSON ile dosyaya veri yazma\u003C/h4>\n\u003Cblockquote>import json\u003Cbr>data = {'ad': 'Ayşe', 'yas': 28}\u003Cbr>with open('data.json', 'w', encoding='utf-8') as f:\u003Cbr>    json.dump(data, f, ensure_ascii=False, indent=2)\u003C/blockquote>\n\u003Cp>JSON verisi yazarken \u003Cstrong>encoding='utf-8'\u003C/strong> ve \u003Cem>ensure_ascii=False\u003C/em> kullanmak, Türkçe karakterlerin doğru saklanmasını sağlar.\u003C/p>\n\n\u003Ch3>Hatalardan kaçınma ve en iyi uygulamalar\u003C/h3>\n\u003Cul>\n  \u003Cli>\u003Cstrong>Her zaman \u003Cem>with\u003C/em> kullanın\u003C/strong> — dosyanın kapatılmasını garanti eder (Python belgelerine göre önerilir).\u003C/li>\n  \u003Cli>\u003Cstrong>Encoding belirtin\u003C/strong> (ör. 'utf-8') — özellikle platformlar arası taşınabilirlik için önemlidir.\u003C/li>\n  \u003Cli>\u003Cstrong>'w' modunun dosyayı sileceğini unutmayın\u003C/strong>; var olan veriyi kaybetmemek için 'a' veya 'x' kullanmayı değerlendirin.\u003C/li>\n  \u003Cli>\u003Cstrong>Binary vs text\u003C/strong>: bytes ile çalışıyorsanız 'b' ekini kullanın (ör. 'rb', 'wb').\u003C/li>\n  \u003Cli>\u003Cstrong>Büyük dosyalar için chunk okuma\u003C/strong> ile bellek tüketimini yönetin.\u003C/li>\n  \u003Cli>\u003Cstrong>Eşzamanlı yazma\u003C/strong> gereken durumlarda dosya kilitleme (file locking) veya başka senkronizasyon yöntemleri düşünün; basit uygulamalar için bunun gerekli olmayabileceğini değerlendirin.\u003C/li>\n\u003C/ul>\n\n\u003Ch3>Performans notları\u003C/h3>\n\u003Cp>readlines() gibi yöntemler küçük dosyalarda hızlı olsa da, büyük dosyalarda bellek tüketimi yaratabilir. Döngüde satır okuma veya sabit büyüklükte chunk'lar kullanmak genelde daha dengeli sonuç verir. İleri durumlar için hafızaya haritalama (mmap) gibi teknikler değerlendirilebilir.\u003C/p>\n\n\u003Ch3>Örnek: basit dosya kopyalama fonksiyonu\u003C/h3>\n\u003Cblockquote>def copy_file(src_path, dst_path):\u003Cbr>    with open(src_path, 'rb') as src:\u003Cbr>        with open(dst_path, 'wb') as dst:\u003Cbr>            while True:\u003Cbr>                buf = src.read(8192)\u003Cbr>                if not buf:\u003Cbr>                    break\u003Cbr>                dst.write(buf)\u003C/blockquote>\n\u003Cp>Bu fonksiyon, hem ikili hem de metin dosyalarını kopyalamak için temel bir örnektir (ikili mod daha güvenlidir, çünkü metin dönüşümleri uygulanmaz).\u003C/p>\n\n\u003Chr>\n\n\u003Ch3>Sonuç\u003C/h3>\n\u003Cp>Python'da dosya işlemleri açık ve anlaşılırdır: \u003Cstrong>open()\u003C/strong>, uygun mod seçimi ve \u003Cstrong>with\u003C/strong> kullanımı çoğu ihtiyacı karşılar. Kod örneklerinde gösterildiği gibi, küçük snippet'lerle okuma, yazma, ekleme ve ikili veri işlemleri hızlıca uygulanabilir. Temel kavramları ve parametreleri Python'un resmi belgelendirmesinde bulabilirsiniz: \u003Ca href='https://docs.python.org/tr/3/tutorial/inputoutput.html'>Python Girdi ve Çıktı\u003C/a>.\u003C/p>\n","Python Dosya İşlemleri: Kısa Kod Snippetleri ve İpuçları","Python'da dosya okuma ve yazma nasıl yapılır — open(), modlar, with kullanımı, encoding ve kısa kod örnekleriyle pratik bir rehber.","Python Dosya İşlemleri, with open örnekleri, read write python örnek, dosya yazma python kod örneği, python file io, python dosya okuma yazma","python-ile-dosya-okuma-ve-yazma-kisa-kod-snippetleri","2026-10-21T11:15:59.000Z",{"id":16,"title":17,"slug":18},210,"Python Dosya İşlemleri","python-dosya-islemleri",{"id":20,"name":21,"nickname":22,"slug":23},92,"Burak Demirtaş","CodeMentor","burak-demirtas","/media/blog/09a9aa51af9fb68cec2dd2ffba141694.jpg","/media/blog/09a9aa51af9fb68cec2dd2ffba141694_thumb.jpg","/media/blog/09a9aa51af9fb68cec2dd2ffba141694.webp","/media/blog/09a9aa51af9fb68cec2dd2ffba141694_thumb.webp",null,{"minutes":30,"wordCount":31,"imageCount":32,"formatted":33},4,771,0,"4 dk okuma süresi","/blog/python-dosya-islemleri/python-ile-dosya-okuma-ve-yazma-kisa-kod-snippetleri",[],["Reactive",37],{"title":7,"subTitle":17,"image":24},["Reactive",39],{"title":10,"meta":40,"link":75},[41,43,45,48,51,54,57,60,63,66,69,71,73],{"hid":42,"name":42,"content":11},"description",{"hid":44,"name":44,"content":12},"keywords",{"hid":46,"name":46,"content":47},"author","Başlangıç Seviyesi Kod & Snippet Rehberi",{"hid":49,"name":49,"content":50},"robots","index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1",{"hid":52,"property":52,"content":53},"og:type","website",{"hid":55,"property":55,"content":56},"og:title","Başlangıç Kod & Snippet Rehberi | KodÖğreniyorum",{"hid":58,"property":58,"content":59},"og:description","Yeni başlayanlara yönelik kısa kod örnekleri, snippet'ler ve adım adım alıştırmalar. Hızlı uygulamalarla temel programlama mantığını pekiştir.",{"hid":61,"property":61,"content":62},"og:image","https://kodogreniyorum.com/media/blog/09a9aa51af9fb68cec2dd2ffba141694.jpg",{"hid":64,"property":64,"content":65},"og:url","https://kodogreniyorum.com/blog/python-dosya-islemleri/python-ile-dosya-okuma-ve-yazma-kisa-kod-snippetleri",{"hid":67,"name":67,"content":68},"twitter:card","summary_large_image",{"hid":70,"name":70,"content":56},"twitter:title",{"hid":72,"name":72,"content":59},"twitter:description",{"hid":74,"name":74,"content":62},"twitter:image",[76,78],{"rel":77,"href":65},"canonical",{"rel":79,"href":80},"amphtml","https://amp.kodogreniyorum.com/blog/python-dosya-islemleri/python-ile-dosya-okuma-ve-yazma-kisa-kod-snippetleri",["Reactive",82],{"@context":83,"@graph":84},"https://schema.org",[85,98],{"@type":86,"headline":10,"image":62,"author":87,"publisher":90,"datePublished":14,"dateModified":14,"mainEntityOfPage":96,"description":11},"BlogPosting",{"@type":88,"name":21,"url":89},"Person","https://kodogreniyorum.com/yazarlar/burak-demirtas",{"@type":91,"name":47,"logo":92},"Organization",{"@type":93,"url":94,"width":95,"height":95},"ImageObject","https://kodogreniyorum.com/img/icons/favicon.png",32,{"@type":97,"@id":65},"WebPage",{"@type":99,"itemListElement":100},"BreadcrumbList",[101,106,110,113],{"@type":102,"position":103,"name":104,"item":105},"ListItem",1,"Ana Sayfa","https://kodogreniyorum.com",{"@type":102,"position":107,"name":108,"item":109},2,"Blog","https://kodogreniyorum.com/blog",{"@type":102,"position":111,"name":17,"item":112},3,"https://kodogreniyorum.com/blog/python-dosya-islemleri",{"@type":102,"position":30,"name":7,"item":65}]