[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-python-ile-dosya-okumayazma-csv-json-ve-binary-ornekleri":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},40413,"Python ile Dosya Okuma/Yazma: CSV, JSON ve Binary Örnekleri","Bu rehber Python'da dosya okuma ve yazma için pratik örnekler içerir: metin dosyaları, CSV, JSON ve binary örnekleri; ayrıca pathlib, encoding ve temel hata yönetimi ipuçları sunar.","\u003Ch2>Python ile Dosya Okuma/Yazma: CSV, JSON ve Binary Örnekleri\u003C/h2>\n\u003Cp>Dosya işlemleri, birçok Python uygulamasının temelidir. Bu rehberde metin dosyaları, CSV, JSON ve ikili (binary) dosyalarla nasıl çalışacağınızı; \u003Cstrong>encoding\u003C/strong>, \u003Cstrong>pathlib\u003C/strong> kullanımı ve basit hata yönetimi yaklaşımlarını uygulamalı örneklerle öğreneceksiniz. Temel bilgiler Python'un standart kütüphanesindeki araçlara dayanır; CSV ve JSON için ilgili modüller özellikle işe yarar (\u003Ca href=\"https://www.geeksforgeeks.org/python/saving-text-json-and-csv-to-a-file-in-python/\">GeeksforGeeks\u003C/a>, \u003Ca href=\"https://www.programiz.com/python-programming/json\">Programiz\u003C/a>).\u003C/p>\n\n\u003Ch3>Temel kavramlar: open(), modlar ve encoding\u003C/h3>\n\u003Cp>Dosyaları açarken en sık kullanılan parametreler şunlardır: mod (ör. 'r','w','a','rb','wb'), encoding (ör. 'utf-8') ve Windows'ta CSV ile ilgili \u003Cem>newline\u003C/em> davranışını kontrol eden \u003Cstrong>newline=\"\"\u003C/strong> ayarı. Ayrıca dosyaları daima \u003Cstrong>with\u003C/strong> bağlam yöneticisi içinde açmak kaynak sızıntılarını önler.\u003C/p>\n\n\u003Ch4>Basit örnek — metin dosyası okuma\u003C/h4>\n\u003Cblockquote>with open('example.txt', 'r', encoding='utf-8') as f:\u003Cbr>    text = f.read()\u003Cbr>print(text)\u003C/blockquote>\n\n\u003Cp>Yazma örneği:\u003C/p>\n\u003Cblockquote>with open('output.txt', 'w', encoding='utf-8') as f:\u003Cbr>    f.write('Merhaba dünya\\n')\u003Cbr>\u003C/blockquote>\n\n\u003Ch3>Pathlib ile dosya yolu yönetimi\u003C/h3>\n\u003Cp>Dosya yollarını elle birleştirmek yerine \u003Cstrong>pathlib.Path\u003C/strong> kullanmak daha güvenlidir ve kod daha taşınabilir olur. Path nesneleri, \u003Cstrong>read_text\u003C/strong> ve \u003Cstrong>write_text\u003C/strong> gibi yardımcı metotlar sağlar.\u003C/p>\n\u003Cblockquote>from pathlib import Path\u003Cbr>p = Path('data') / 'girdi.txt'\u003Cbr>text = p.read_text(encoding='utf-8')\u003Cbr>p.write_text('Yeni içerik', encoding='utf-8')\u003C/blockquote>\n\u003Cp>Pathlib hakkında pratik ipuçları için kaynaklarda ek örnekler bulabilirsiniz (\u003Ca href=\"https://www.torbaci.com/2025/04/python-ile-dosya-okuma-ve-yazma-detayl.html\">ToRbAcİ\u003C/a>).\u003C/p>\n\n\u003Ch3>CSV dosyaları: csv modülü ile okuma ve yazma\u003C/h3>\n\u003Cp>CSV verileri tablo benzeri yapıdadır; Python'un \u003Cstrong>csv\u003C/strong> modülü hem satır/sütun bazlı okuma hem de sözlük tabanlı yazma/okuma imkânı verir. Windows'ta yazım yaparken boş satırlar olmaması için \u003Cstrong>newline=\"\"\u003C/strong> kullanın.\u003C/p>\n\n\u003Ch4>CSV yazma (DictWriter)\u003C/h4>\n\u003Cblockquote>import csv\u003Cbr>data = [{'ad': 'Ayşe', 'yas': 28}, {'ad': 'Mehmet', 'yas': 34}]\u003Cbr>with open('kisiler.csv', 'w', newline='', encoding='utf-8') as f:\u003Cbr>    fieldnames = ['ad', 'yas']\u003Cbr>    writer = csv.DictWriter(f, fieldnames=fieldnames)\u003Cbr>    writer.writeheader()\u003Cbr>    for row in data:\u003Cbr>        writer.writerow(row)\u003C/blockquote>\n\n\u003Ch4>CSV okuma (DictReader)\u003C/h4>\n\u003Cblockquote>import csv\u003Cbr>with open('kisiler.csv', 'r', newline='', encoding='utf-8') as f:\u003Cbr>    reader = csv.DictReader(f)\u003Cbr>    for row in reader:\u003Cbr>        print(row['ad'], row['yas'])\u003C/blockquote>\n\n\u003Cp>Daha ayrıntılı CSV örnekleri ve köşe durumları için bakınız: \u003Ca href=\"https://www.sitepoint.com/python-csv-files/\">SitePoint CSV rehberi\u003C/a>.\u003C/p>\n\n\u003Ch3>JSON dosyaları: json modülüyle veri serileştirme\u003C/h3>\n\u003Cp>JSON, Python sözlükleri ve listeleriyle doğal olarak uyumludur. Türkçe karakterleri korumak için \u003Cstrong>json.dump\u003C/strong> çağrısında \u003Cstrong>ensure_ascii=False\u003C/strong> kullanın.\u003C/p>\n\n\u003Ch4>JSON yazma\u003C/h4>\n\u003Cblockquote>import json\u003Cbr>data = {'isim': 'Özgür', 'roller': ['admin', 'kullanici']}\u003Cbr>with open('veri.json', 'w', encoding='utf-8') as f:\u003Cbr>    json.dump(data, f, ensure_ascii=False, indent=2)\u003C/blockquote>\n\n\u003Ch4>JSON okuma\u003C/h4>\n\u003Cblockquote>import json\u003Cbr>with open('veri.json', 'r', encoding='utf-8') as f:\u003Cbr>    data = json.load(f)\u003Cbr>print(data['isim'])\u003C/blockquote>\n\n\u003Cp>JSON ile ilgili giriş ve örnekler için Programiz'in rehberi faydalıdır (\u003Ca href=\"https://www.programiz.com/python-programming/json\">Programiz JSON\u003C/a>).\u003C/p>\n\n\u003Ch3>Binary (ikili) dosyalar: ne zaman ve nasıl?\u003C/h3>\n\u003Cp>Binary mod ('rb'/'wb') görüntü, audio, sıkıştırılmış dosyalar veya ham byte verisi gerektiğinde kullanılır. Binary dosyaları text olarak açmak veri bozulmasına yol açar; bu yüzden doğru modu seçmek önemlidir.\u003C/p>\n\n\u003Ch4>Dosya kopyalama örneği (chunk ile)\u003C/h4>\n\u003Cblockquote>with open('kaynak.jpg', 'rb') as src:\u003Cbr>    with open('hedef.jpg', 'wb') as dst:\u003Cbr>        for chunk in iter(lambda: src.read(8192), b''):\u003Cbr>            dst.write(chunk)\u003C/blockquote>\n\n\u003Cp>Bu yaklaşım büyük dosyaları bellek tüketimini azaltarak işlemeye imkan verir. Ayrıca byte verisini metinden dönüştürmek için \u003Cstrong>encode\u003C/strong>/\u003Cstrong>decode\u003C/strong> kullanılabilir:\u003C/p>\n\u003Cblockquote>text = 'Merhaba'  # str\u003Cbr>b = text.encode('utf-8')  # bytes\u003Cbr>with open('metin.bin', 'wb') as f:\u003Cbr>    f.write(b)\u003C/blockquote>\n\n\u003Ch3>Hata yönetimi ve iyi uygulamalar\u003C/h3>\n\u003Cul>\n  \u003Cli>\u003Cstrong>with\u003C/strong> kullanarak dosyaları otomatik kapatın.\u003C/li>\n  \u003Cli>Okuma/yazma sırasında \u003Cstrong>encoding='utf-8'\u003C/strong> belirtin; özellikle Türkçe karakterler için önemlidir (\u003Ca href=\"https://www.torbaci.com/2025/04/python-ile-dosya-okuma-ve-yazma-detayl.html\">ToRbAcİ\u003C/a>).\u003C/li>\n  \u003Cli>CSV yazımında \u003Cstrong>newline=\"\"\u003C/strong> kullanın; aksi halde Windows'ta boş satırlar oluşabilir.\u003C/li>\n  \u003Cli>Harici verileri işlerken istisnaları yakalayın ve kullanıcıya açıklayıcı hata mesajı verin.\u003C/li>\n  \u003Cli>Büyük dosyalar için belleğe tamamını yüklemek yerine chunk/iterasyon kullanın.\u003C/li>\n\u003C/ul>\n\n\u003Ch4>Basit hata yakalama örneği\u003C/h4>\n\u003Cblockquote>try:\u003Cbr>    with open('veri.json', 'r', encoding='utf-8') as f:\u003Cbr>        data = json.load(f)\u003Cbr>except FileNotFoundError:\u003Cbr>    print('Dosya bulunamadı')\u003Cbr>except json.JSONDecodeError as e:\u003Cbr>    print('Geçersiz JSON:', e)\u003C/blockquote>\n\n\u003Ch3>Örnek: CSV'den JSON'a dönüşüm\u003C/h3>\n\u003Cp>Bu kısa örnek CSV içeriğini okuyup JSON dosyası üretir.\u003C/p>\n\u003Cblockquote>import csv, json\u003Cbr>rows = []\u003Cbr>with open('kisiler.csv', 'r', newline='', encoding='utf-8') as f:\u003Cbr>    reader = csv.DictReader(f)\u003Cbr>    for r in reader:\u003Cbr>        rows.append(r)\u003Cbr>with open('kisiler.json', 'w', encoding='utf-8') as f:\u003Cbr>    json.dump(rows, f, ensure_ascii=False, indent=2)\u003C/blockquote>\n\n\u003Ch3>Büyük dosyalar ve performans önerileri\u003C/h3>\n\u003Cul>\n  \u003Cli>Chunk okumayı tercih edin (örn. 8 KB veya 64 KB). Büyük buffer’ı kullanmadan önce bellek sınırlarını test edin.\u003C/li>\n  \u003Cli>Disk I/O sınırlarını test edin; çok sayıda küçük yazma işlemi yerine tamponlayıp tek defada yazmak daha verimli olabilir.\u003C/li>\n  \u003Cli>Gerekirse gzip veya benzeri sıkıştırma kullanarak disk kullanımını azaltabilirsiniz; fakat bu ek işlem maliyeti getirir.\u003C/li>\n\u003C/ul>\n\n\u003Chr>\n\u003Ch3>Hızlı kontrol listesi (Checklist)\u003C/h3>\n\u003Cul>\n  \u003Cli>Dosya modunu doğru seçin: 'r'/'w' (text) vs 'rb'/'wb' (binary).\u003C/li>\n  \u003Cli>Türkçe için encoding='utf-8' kullanın.\u003C/li>\n  \u003Cli>CSV yazımında newline='' kullanın.\u003C/li>\n  \u003Cli>with bağlam yöneticisi ile dosyaları açın.\u003C/li>\n  \u003Cli>Büyük dosyaları chunklarla işleyin.\u003C/li>\n  \u003Cli>Harici veriyi işlerken try-except ile hata mesajı verin.\u003C/li>\n\u003C/ul>\n\n\u003Ch3>Kaynaklar ve ileri okuma\u003C/h3>\n\u003Cul>\n  \u003Cli>\u003Ca href=\"https://www.geeksforgeeks.org/python/saving-text-json-and-csv-to-a-file-in-python/\">Saving Text, JSON and CSV to a File in Python — GeeksforGeeks\u003C/a>\u003C/li>\n  \u003Cli>\u003Ca href=\"https://www.programiz.com/python-programming/json\">Python JSON: Read, Write, Parse JSON — Programiz\u003C/a>\u003C/li>\n  \u003Cli>\u003Ca href=\"https://www.sitepoint.com/python-csv-files/\">Working With CSV Files Using Python — SitePoint\u003C/a>\u003C/li>\n  \u003Cli>\u003Ca href=\"https://www.torbaci.com/2025/04/python-ile-dosya-okuma-ve-yazma-detayl.html\">Python ile Dosya Okuma ve Yazma — ToRbAcİ\u003C/a>\u003C/li>\n\u003C/ul>\n\n\u003Ch2>Sıkça Sorulan Sorular\u003C/h2>\n\n\u003Ch3>1) Dosya açarken encoding parametresi neden gerekli?\u003C/h3>\n\u003Cp>Varsayılan encoding sistemden sisteme değişebilir; Türkçe karakterlerin doğru şekilde okunup yazılması için \u003Cstrong>encoding='utf-8'\u003C/strong> belirtmek en güvenilir yaklaşımdır.\u003C/p>\n\n\u003Ch3>2) CSV yazarken neden newline='' kullanmalıyım?\u003C/h3>\n\u003Cp>Python'un csv modülü, platform bağımsız davranmak için newline parametresine ihtiyaç duyar. Windows'ta boş satırlar oluşmasını önlemek için yazarken \u003Cstrong>newline=\"\"\u003C/strong> kullanılması önerilir (\u003Ca href=\"https://www.sitepoint.com/python-csv-files/\">SitePoint\u003C/a>).\u003C/p>\n\n\u003Ch3>3) Binary mod ne zaman kullanılır?\u003C/h3>\n\u003Cp>Metin olmayan dosyalar (görseller, ses, sıkıştırılmış dosyalar) veya ham byte işlemleri gerektiğinde 'rb' ve 'wb' modları kullanılmalıdır. Metin modunda okuma/yazma verinin bozulmasına yol açabilir.\u003C/p>\n\n\u003Ch3>4) Pathlib kullanmak zorunlu mu?\u003C/h3>\n\u003Cp>Zorunlu değil, ancak pathlib dosya yollarını platformlar arası güvenli ve okunaklı bir biçimde yönetir; çoğu senaryoda kolaylık sağlar.\u003C/p>\n\n\u003Ch3>5) Çok büyük JSON dosyalarını nasıl işlerim?\u003C/h3>\n\u003Cp>JSON tümüyle belleğe yükleniyorsa bellek sınırlarını zorlayabilir. Satır tabanlı JSON (JSON Lines) veya dosyayı parça parça okuyup işlemeyi tercih etmek gerekir.\u003C/p>\n","Python ile Dosya Okuma/Yazma — CSV, JSON ve Binary Örnekleri","Python'da dosya okuma ve yazma işlemlerini CSV, JSON ve binary örnekleriyle adım adım öğrenin; encoding, pathlib kullanımı ve hata yönetimi ipuçlarıyla uygulamı","Python Dosya İşlemleri, open with, encoding, pathlib, csv modülü, json modülü, binary dosya okuma, CSV okuma yazma","python-ile-dosya-okumayazma-csv-json-ve-binary-ornekleri","2026-11-05T13:25:30.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/367e2442ab8f68beb521ac1a04e7ac58.jpg","/media/blog/367e2442ab8f68beb521ac1a04e7ac58_thumb.jpg","/media/blog/367e2442ab8f68beb521ac1a04e7ac58.webp","/media/blog/367e2442ab8f68beb521ac1a04e7ac58_thumb.webp",null,{"minutes":30,"wordCount":31,"imageCount":32,"formatted":33},5,936,0,"5 dk okuma süresi","/blog/python-dosya-islemleri/python-ile-dosya-okumayazma-csv-json-ve-binary-ornekleri",[],["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/367e2442ab8f68beb521ac1a04e7ac58.jpg",{"hid":64,"property":64,"content":65},"og:url","https://kodogreniyorum.com/blog/python-dosya-islemleri/python-ile-dosya-okumayazma-csv-json-ve-binary-ornekleri",{"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-okumayazma-csv-json-ve-binary-ornekleri",["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]