[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-python-dosya-islemleri-okuma-yazma-ve-guvenli-ornekler":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},26651,"Python Dosya İşlemleri: Okuma, Yazma ve Güvenli Örnekler","Bu makalede Python'da dosya açma, okuma, yazma ve güvenli kullanım için context manager, hata yakalama ve binary dosya örnekleri gibi pratik konuları öğreneceksiniz.","\u003Ch2>Python Dosya İşlemleri: Okuma, Yazma ve Güvenli Örnekler\u003C/h2>\n\u003Cp>Python ile dosya işlemleri uygulama geliştirmede sık kullanılan temel becerilerdendir. Bu yazıda open() kullanımından başlayarak okuma/yazma yöntemlerini, ikili (binary) dosya işlemlerini, güvenli kullanım önerilerini ve sık karşılaşılan durumlara yönelik pratik örnekleri adım adım ele alacağız.\u003C/p>\n\u003Cp>Örnekler hem yeni başlayanlar hem de günlük geliştirme sırasında hızlı referans ihtiyacı olanlar için hazırlanmıştır. Temel prensipler: hangi modda açtığınız, nasıl kapattığınız (context manager) ve hata yönetimini doğru yapmaktır — bu konular kaynaklarda da vurgulanmaktadır.\u003C/p>\n\n\u003Ch3>Temel kavramlar: open(), dosya nesnesi ve modlar\u003C/h3>\n\u003Cp>Python'da dosya açmak için yerleşik \u003Cstrong>open()\u003C/strong> fonksiyonu kullanılır. Fonksiyon bir dosya nesnesi (file object) döndürür; bu nesne üzerinden okuma/yazma yapılır. En sık kullanılan modlar şunlardır: \u003Ccode>'r'\u003C/code> (okuma), \u003Ccode>'w'\u003C/code> (yazma, varsa üzerine yazar), \u003Ccode>'a'\u003C/code> (ekleme) ve \u003Ccode>'b'\u003C/code> (ikili/binary). Bu temel bilgilerle ilgili kaynaklar için örnek dokümanlara bakabilirsiniz.\u003C/p>\n\u003Cp>Detaylı mod ve kullanım açıklamaları için rehber örnekleri inceleyebilirsiniz: \u003Ca href=\"https://cyberwar.tr/13-python-dosya-islemleri/\">Cyber War — Python Dosya İşlemleri\u003C/a> ve \u003Ca href=\"https://derslik.kerteriz.net/python-dersleri/dosya-islemleri\">Derslik: Dosya İşlemleri\u003C/a>.\u003C/p>\n\n\u003Ch3>Context manager: with open kullanımı (otomatik kapanma)\u003C/h3>\n\u003Cp>Dosya ile iş bittikten sonra dosyayı kapatmak önemlidir. Bunun için en güvenli ve tercih edilen yol \u003Cstrong>with\u003C/strong> (context manager) kullanmaktır; böylece dosya bloğu sona erdiğinde Python dosyayı otomatik kapatır. Bu yaklaşım kaynak sızıntılarını ve açık kalan dosya tanıtıcılarını önlemeye yardımcı olur.\u003C/p>\n\u003Cblockquote>with open('veri.txt', 'r', encoding='utf-8') as f:\u003Cbr>    text = f.read()\u003C/blockquote>\n\u003Cp>Hemen her durumda \u003Cstrong>with\u003C/strong> kullanmanız önerilir. Konuyla ilgili üniversite ders notlarında ve rehberlerde de aynı tavsiye bulunur; örneğin Harran Üniversitesi dokümanında context manager kullanımı belirtilmiştir: \u003Ca href=\"https://birecik.harran.edu.tr/assets/uploads/other/files/birecik/files/1-python_ile_dosyadan_okuma_modlar%C4%B1.pdf\">Harran Üniversitesi — Dosya Okuma Modları\u003C/a>.\u003C/p>\n\n\u003Ch3>Dosya okuma yöntemleri: read(), readline(), iterasyon\u003C/h3>\n\u003Cp>Dosyadan veri almak için birkaç farklı yöntem vardır; hangi yöntemi seçeceğiniz dosya boyutu ve ihtiyaçlarınıza bağlıdır:\u003C/p>\n\u003Cul>\n  \u003Cli>\u003Cstrong>f.read()\u003C/strong>: Tüm içeriği tek bir string olarak döndürür. Küçük dosyalar için uygundur.\u003C/li>\n  \u003Cli>\u003Cstrong>f.readline()\u003C/strong>: Bir seferde tek bir satır okur; döngü içinde kullanılarak satır satır işleme yapılabilir.\u003C/li>\n  \u003Cli>\u003Cstrong>f.readlines()\u003C/strong>: Tüm satırları bir liste olarak döndürür; hafıza kullanımı yüksek olabilir.\u003C/li>\n  \u003Cli>En bellek dostu yöntem \u003Cstrong>for line in f\u003C/strong> ile dosya üzerinde satır satır iterasyondur; Python satırları gerektiği kadar tamponlayarak okur.\u003C/li>\n\u003C/ul>\n\u003Cp>Örnek: satır satır okuma\u003C/p>\n\u003Cblockquote>with open('log.txt', 'r', encoding='utf-8') as f:\u003Cbr>    for line in f:\u003Cbr>        process(line)\u003C/blockquote>\n\u003Cp>Bu metotlar ve kullanım örnekleri hakkında daha fazla teknik detay ToRbAcİ rehberinde de ele alınmaktadır: \u003Ca href=\"https://www.torbaci.com/2025/04/python-ile-dosya-okuma-ve-yazma-detayl.html\">ToRbAcİ — Dosya Okuma ve Yazma\u003C/a>.\u003C/p>\n\n\u003Ch3>Dosya yazma: write(), writelines(), mod seçimi\u003C/h3>\n\u003Cp>Dosyaya yazarken kullanacağınız mod yazma davranışını belirler: \u003Ccode>'w'\u003C/code> var olan içeriği siler ve yeniden yazar, \u003Ccode>'a'\u003C/code> ise mevcut içeriğe ekleme yapar. Yazma metotları:\u003C/p>\n\u003Cul>\n  \u003Cli>\u003Cstrong>f.write(text)\u003C/strong>: Tek bir string yazar.\u003C/li>\n  \u003Cli>\u003Cstrong>f.writelines(list_of_strings)\u003C/strong>: Bir liste içindeki stringleri sırayla yazar (satır sonlarını kendiniz eklemelisiniz).\u003C/li>\n  \u003Cli>\u003Cstrong>f.flush()\u003C/strong> gerektiğinde tamponu diske zorlar (ör. kritik veriler yazılırken).\u003C/li>\n\u003C/ul>\n\u003Cp>Örnek: dosyaya satır ekleme\u003C/p>\n\u003Cblockquote>with open('output.txt', 'a', encoding='utf-8') as f:\u003Cbr>    f.write('Yeni satır\\n')\u003C/blockquote>\n\n\u003Ch3>Binary (ikili) dosya işlemleri\u003C/h3>\n\u003Cp>Metin dosyalarının dışında görüntü, ses veya ikili formatlı verilerle çalışırken dosyayı \u003Ccode>'rb'\u003C/code> veya \u003Ccode>'wb'\u003C/code> modunda açmalısınız. Bu mod byte nesneleriyle (bytes) çalışmayı sağlar; Python string'leri değil, ham veriyi okur/yazar.\u003C/p>\n\u003Cblockquote>with open('resim.png', 'rb') as src:\u003Cbr>    data = src.read()\u003Cbr>with open('kopya.png', 'wb') as dst:\u003Cbr>    dst.write(data)\u003C/blockquote>\n\u003Cp>Binary mod ile ilgili temel açıklamalar ve örnekler için ders notlarına bakabilirsiniz: \u003Ca href=\"https://derslik.kerteriz.net/python-dersleri/dosya-islemleri\">Derslik — Dosya İşlemleri\u003C/a>.\u003C/p>\n\n\u003Ch3>Hata yönetimi ve güvenli yazma\u003C/h3>\n\u003Cp>Dosya işlemlerinde sık karşılaşılan hatalar; dosyanın bulunmaması (FileNotFoundError), izin problemleri (PermissionError) veya disk doluluğu gibi durumlardır. Bu hataları yakalamak için \u003Cstrong>try-except\u003C/strong> blokları kullanın ve kullanıcıya veya log'a açıklayıcı mesaj bırakın.\u003C/p>\n\u003Cblockquote>try:\u003Cbr>    with open('veri.txt', 'r', encoding='utf-8') as f:\u003Cbr>        process(f.read())\u003Cbr>except FileNotFoundError:\u003Cbr>    print('Dosya bulunamadı.')\u003Cbr>except PermissionError:\u003Cbr>    print('Dosyaya erişim reddedildi.')\u003C/blockquote>\n\u003Cp>Try-except ile hata yönetimi başlangıç için yeterlidir; bu konuda üniversite ve rehber kaynakları benzer öneriler sunar: \u003Ca href=\"https://birecik.harran.edu.tr/assets/uploads/other/files/birecik/files/1-python_ile_dosyadan_okuma_modlar%C4%B1.pdf\">Harran Üniversitesi\u003C/a>.\u003C/p>\n\u003Cp>Güvenli yazma için dikkate alınması gerekenler: dosya yollarını doğrulayın, kullanıcı girdilerini doğrudan dosya adlarında kullanmaktan kaçının ve kritik güncellemeler için atomik yazma tekniklerini değerlendirin (örneğin geçici dosyaya yazıp sonra değiş tokuş etmek).\u003C/p>\n\n\u003Ch3>Performans ve bellek ipuçları\u003C/h3>\n\u003Cp>Büyük dosyalarla çalışırken hafızayı korumak önemlidir. Bazı pratik öneriler:\u003C/p>\n\u003Cul>\n  \u003Cli>Dosyayı satır satır işleyin (for line in f) — tüm dosyayı belleğe almak yerine.\u003C/li>\n  \u003Cli>Büyük binary akışlarda \u003Cstrong>.read(chunk_size)\u003C/strong> kullanın ve parçalar halinde işleyin.\u003C/li>\n  \u003Cli>Yazma sırasında gereksiz flush çağrılarından kaçının; yalnızca kritik anlarda flush kullanın.\u003C/li>\n\u003C/ul>\n\u003Cp>Hangi yöntemin daha uygun olduğu dosya boyutu ve uygulama gereksinimlerine göre değişir; pratik örnekler için rehber kaynaklara göz atabilirsiniz.\u003C/p>\n\n\u003Ch3>Kontrol listesi: Yaygın senaryolar için hızlı rehber\u003C/h3>\n\u003Cul>\n  \u003Cli>Her zaman \u003Cstrong>with open(...)\u003C/strong> kullanın; otomatik kapanma sağlar.\u003C/li>\n  \u003Cli>Küçük dosyalar için \u003Cstrong>read()\u003C/strong>, büyük dosyalar için satır/çanta (chunk) bazlı okumayı tercih edin.\u003C/li>\n  \u003Cli>Binary veriler için \u003Ccode>'rb'\u003C/code>/\u003Ccode>'wb'\u003C/code> kullanın.\u003C/li>\n  \u003Cli>Hata yönetimi için \u003Cstrong>try-except\u003C/strong> kullanın ve spesifik istisnaları yakalayın.\u003C/li>\n  \u003Cli>Dosya yollarını doğrulayın; kullanıcı girdilerini doğrudan dosya adı yapmayın.\u003C/li>\n\u003C/ul>\n\n\u003Ch3>Pratik örnek: Satır satır okuyup filtreleyerek yeni dosyaya yazma\u003C/h3>\n\u003Cblockquote>with open('giris.txt', 'r', encoding='utf-8') as src, open('cikis.txt', 'w', encoding='utf-8') as dst:\u003Cbr>    for line in src:\u003Cbr>        if not line.strip().startswith('#'):\u003Cbr>            dst.write(line)\u003C/blockquote>\n\u003Cp>Bu küçük örnek yorum satırlarını (\"#\" ile başlayanları) atarak yeni bir dosya oluşturur. Gerçek uygulamalarda ek hata kontrolü ve yol doğrulama eklemeyi unutmayın.\u003C/p>\n\n\u003Chr>\n\u003Cp>\u003Cstrong>Kaynaklar ve önerilen okumalar:\u003C/strong>\u003C/p>\n\u003Cul>\n  \u003Cli>\u003Ca href=\"https://birecik.harran.edu.tr/assets/uploads/other/files/birecik/files/1-python_ile_dosyadan_okuma_modlar%C4%B1.pdf\">Harran Üniversitesi — Python ile Dosyadan Okuma Modları\u003C/a> (context manager ve mod açıklamaları)\u003C/li>\n  \u003Cli>\u003Ca href=\"https://www.torbaci.com/2025/04/python-ile-dosya-okuma-ve-yazma-detayl.html\">ToRbAcİ — Python ile Dosya Okuma ve Yazma\u003C/a> (metod örnekleri)\u003C/li>\n  \u003Cli>\u003Ca href=\"https://derslik.kerteriz.net/python-dersleri/dosya-islemleri\">Derslik — Dosya İşlemleri\u003C/a> (temel kavramlar)\u003C/li>\n  \u003Cli>\u003Ca href=\"https://cyberwar.tr/13-python-dosya-islemleri/\">Cyber War — 13. Python Dosya İşlemleri\u003C/a>\u003C/li>\n\u003C/ul>\n","Python Dosya İşlemleri — Okuma, Yazma ve Güvenli Örnekler","Python'da dosya açma, okuma, yazma ve ikili (binary) işlemlerini pratik örneklerle öğrenin; context manager, hata yönetimi ve performans ipuçları ile güvenli ad","Python Dosya İşlemleri, with open örnekleri, dosya okuma python, dosya yazma python, binary dosya işlemleri, Python file IO, context manager","python-dosya-islemleri-okuma-yazma-ve-guvenli-ornekler","2026-04-10T17:20:47.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/b3677716709b4b2394cca012cc30bbe3.jpg","/media/blog/b3677716709b4b2394cca012cc30bbe3_thumb.jpg","/media/blog/b3677716709b4b2394cca012cc30bbe3.webp","/media/blog/b3677716709b4b2394cca012cc30bbe3_thumb.webp",null,{"minutes":30,"wordCount":31,"imageCount":32,"formatted":33},5,844,0,"5 dk okuma süresi","/blog/python-dosya-islemleri/python-dosya-islemleri-okuma-yazma-ve-guvenli-ornekler",[],["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/b3677716709b4b2394cca012cc30bbe3.jpg",{"hid":64,"property":64,"content":65},"og:url","https://kodogreniyorum.com/blog/python-dosya-islemleri/python-dosya-islemleri-okuma-yazma-ve-guvenli-ornekler",{"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-dosya-islemleri-okuma-yazma-ve-guvenli-ornekler",["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":114,"name":7,"item":65},4]