[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-python-dosya-islemleri-okuma-yazma-ve-csv-ornekleri":3},{"dataItem":4,"heading":35,"metaData":37,"schema":80},["Reactive",5],{"id":6,"title":7,"summary":8,"content":9,"seo_title":7,"seo_description":10,"seo_keywords":11,"slug":12,"createdAt":13,"updatedAt":13,"blog_categories":14,"authors":18,"image":23,"thumb":24,"image_webp":25,"thumb_webp":26,"rating":27,"heading_title":7,"heading_sub_title":16,"readingTime":28,"url":33,"comments":34,"meta_cover":23},24850,"Python Dosya İşlemleri: Okuma, Yazma ve CSV Örnekleri","Bu rehber Python'da dosya açma, okuma, yazma ve CSV ile çalışma konularını pratik örneklerle açıklar; context manager, encoding, csv modülü ve pandas kullanımına değinir.","\u003Ch2>Python Dosya İşlemleri: Okuma, Yazma ve CSV Örnekleri\u003C/h2>\n\u003Cp>Dosya işlemleri, uygulamaların kalıcı veri saklaması, yapılandırılmış veri alışverişi ve günlükleme (logging) gibi işlevleri için temel gereksinimdir. Bu rehberde \u003Cstrong>open()\u003C/strong> ile dosya açma, okuma/yazma modları, CSV dosyalarıyla çalışma ve üretim benzeri senaryolar için iyi uygulamalar gösterilecektir. Temel tanımlar ve modlar için kısa bir giriş için \u003Ca href=\"https://diveebi.com/python/pythonda-dosya-islemleri/\">Diveebi - Python'da Dosya İşlemleri\u003C/a> kaynağı faydalı olacaktır.\u003C/p>\n\n\u003Ch3>Temel kavramlar: open(), modlar ve close()\u003C/h3>\n\u003Cp>Python'da dosya işlemleri için yerleşik \u003Cstrong>open()\u003C/strong> fonksiyonu kullanılır. Dosya modları (ör. 'r', 'w', 'a') dosyanın nasıl açılacağını belirler. Manuel olarak \u003Cstrong>close()\u003C/strong> çağrılabilir, ancak bağlam yöneticisi (context manager) kullanmak kapatmayı otomatik hâle getirir; bu yaklaşım kaynak yönetimi açısından önerilir (bkz. kaynaklar).\u003C/p>\n\n\u003Ch3>Dosya modları (kısa özet)\u003C/h3>\n\u003Cul>\n  \u003Cli>\u003Cstrong>'r'\u003C/strong> – Okuma modu. Dosya yoksa \u003Cem>FileNotFoundError\u003C/em> oluşur.\u003C/li>\n  \u003Cli>\u003Cstrong>'w'\u003C/strong> – Yazma modu. Dosya varsa içeriği siler, yoksa oluşturur.\u003C/li>\n  \u003Cli>\u003Cstrong>'a'\u003C/strong> – Ekleme (append) modu. Dosya varsa sonuna ekler, yoksa oluşturur.\u003C/li>\n  \u003Cli>\u003Cstrong>'x'\u003C/strong> – Yalnızca oluşturma. Dosya varsa hata verir.\u003C/li>\n  \u003Cli>\u003Cstrong>'b'\u003C/strong> – İkili (binary) mod. Örn. 'rb', 'wb'—görüntü veya ikili veriler için.\u003C/li>\n  \u003Cli>\u003Cstrong>'t'\u003C/strong> – Metin (text) modu; genellikle varsayılandır (örn. 'rt').\u003C/li>\n  \u003Cli>\u003Cstrong>'+'\u003C/strong> – Okuma ve yazma kombinasyonu (örn. 'r+', 'w+').\u003C/li>\n\u003C/ul>\n\u003Cp>Bu modların ayrıntıları ve kullanım örnekleri için ayrıca \u003Ca href=\"https://www.facadium.com.tr/blog/pythonda-dosya-acma-ve-yazma-islemleri/\">Facadium\u003C/a> rehberine bakabilirsiniz.\u003C/p>\n\n\u003Ch3>Metin dosyası okuma: temel örnekler\u003C/h3>\n\u003Cp>Basit bir metin dosyasını okumak için en sık kullanılan yöntem bağlam yöneticisidir:\u003C/p>\n\u003Cp>\u003Cstrong>with open('ornek.txt', 'r', encoding='utf-8') as f:\u003Cbr>    content = f.read()\u003C/strong>\u003C/p>\n\u003Cp>Alternatif olarak satır satır okumak belleği daha tasarruflu kullanır:\u003C/p>\n\u003Cp>\u003Cstrong>with open('ornek.txt', 'r', encoding='utf-8') as f:\u003Cbr>    for line in f:\u003Cbr>        print(line.strip())\u003C/strong>\u003C/p>\n\u003Cp>Diğer seçenekler: \u003Cstrong>f.readline()\u003C/strong> (tek satır), \u003Cstrong>f.readlines()\u003C/strong> (tüm satırları liste olarak alır). Encoding parametresi (ör. 'utf-8') özellikle Türkçe karakterler için önemlidir.\u003C/p>\n\n\u003Ch3>Dosyaya yazma ve ekleme\u003C/h3>\n\u003Cp>Yazma örneği:\u003C/p>\n\u003Cp>\u003Cstrong>with open('ornek.txt', 'w', encoding='utf-8') as f:\u003Cbr>    f.write('Merhaba Dünya\\n')\u003C/strong>\u003C/p>\n\u003Cp>Eklemek için:\u003C/p>\n\u003Cp>\u003Cstrong>with open('ornek.txt', 'a', encoding='utf-8') as f:\u003Cbr>    f.write('Yeni satır\\n')\u003C/strong>\u003C/p>\n\u003Cp>\u003Cstrong>'w'\u003C/strong> modu mevcut dosyayı sıfırlar; mevcut veriyi kaybetmek istemiyorsanız \u003Cstrong>'a'\u003C/strong> kullanın.\u003C/p>\n\n\u003Ch3>İkili (binary) dosyalar\u003C/h3>\n\u003Cp>Görüntü, ses veya sıkıştırılmış veriler gibi ikili içerikler için 'rb'/'wb' kullanın:\u003C/p>\n\u003Cp>\u003Cstrong>with open('resim.png', 'rb') as f:\u003Cbr>    data = f.read()\u003C/strong>\u003C/p>\n\u003Cp>Binary veriler üzerinde işlem yaparken byte dizileriyle (bytes) çalışıldığını unutmayın.\u003C/p>\n\n\u003Ch3>CSV dosyalarıyla çalışma (csv modülü)\u003C/h3>\n\u003Cp>CSV dosyalarını okumak/yazmak için Python'un yerleşik \u003Cstrong>csv\u003C/strong> modülü kolay ve etkilidir. Aşağıdaki örnekleri \u003Ca href=\"https://muhammeddincer.com/python-ile-csv-dosya-okuma-ve-yazma/\">Muhammed DİNÇER\u003C/a>'in rehberine paralel şekilde kullanabilirsiniz.\u003C/p>\n\u003Cp>Örnek CSV içeriği:\u003Cbr>\u003Cstrong>isim,yaş,şehir\u003Cbr>Ali,30,İstanbul\u003Cbr>Ayşe,25,Ankara\u003C/strong>\u003C/p>\n\u003Cp>Okuma (reader):\u003C/p>\n\u003Cp>\u003Cstrong>import csv\u003Cbr>with open('kisiler.csv', 'r', encoding='utf-8') as csvfile:\u003Cbr>    reader = csv.reader(csvfile)\u003Cbr>    for row in reader:\u003Cbr>        print(row)\u003C/strong>\u003C/p>\n\u003Cp>Alan isimleriyle çalışmak için \u003Cstrong>DictReader\u003C/strong> kullanabilirsiniz:\u003C/p>\n\u003Cp>\u003Cstrong>with open('kisiler.csv', 'r', encoding='utf-8') as csvfile:\u003Cbr>    reader = csv.DictReader(csvfile)\u003Cbr>    for row in reader:\u003Cbr>        print(row['isim'], row['yaş'])\u003C/strong>\u003C/p>\n\u003Cp>Yazma (writer) örneği - Windows'ta fazladan boş satır oluşmasını önlemek için \u003Cstrong>newline=''\u003C/strong> kullanılması önerilir:\u003C/p>\n\u003Cp>\u003Cstrong>with open('cikti.csv', 'w', newline='', encoding='utf-8') as csvfile:\u003Cbr>    writer = csv.writer(csvfile)\u003Cbr>    writer.writerow(['isim', 'yaş', 'şehir'])\u003Cbr>    writer.writerows([['Ali','30','İstanbul'], ['Ayşe','25','Ankara']])\u003C/strong>\u003C/p>\n\u003Cp>DictWriter ile sözlük tabanlı yazma da mümkündür. CSV ile ilgili pratik ipuçları ve örnekler için Muhammed DİNÇER'in yazısı faydalıdır.\u003C/p>\n\n\u003Ch3>Pandas ile CSV okuma/yazma (büyük veri için)\u003C/h3>\n\u003Cp>Daha büyük veya analize hazır veri setleri için \u003Cstrong>pandas\u003C/strong> kütüphanesi sık tercih edilir:\u003C/p>\n\u003Cp>\u003Cstrong>import pandas as pd\u003Cbr>df = pd.read_csv('kisiler.csv', encoding='utf-8')\u003Cbr>df_filtered = df[df['yaş'] &gt;= 30]\u003Cbr>df_filtered.to_csv('ust30.csv', index=False)\u003C/strong>\u003C/p>\n\u003Cp>Pandas, veri filtreleme ve dönüşümlerini tek satırda yapmayı kolaylaştırır; fakat küçük dosyalar için csv modülü daha hafif bir alternatiftir.\u003C/p>\n\n\u003Ch3>İyi uygulamalar ve sık karşılaşılan durumlar\u003C/h3>\n\u003Cul>\n  \u003Cli>Kullanım sonrası dosyayı kapatmak için \u003Cstrong>with\u003C/strong> (context manager) kullanın; bu, kaynak sızıntılarını önler.\u003C/li>\n  \u003Cli>Kodunuzda her zaman \u003Cstrong>encoding='utf-8'\u003C/strong> belirtmeye çalışın; aksi halde Türkçe karakter problemleri çıkabilir.\u003C/li>\n  \u003Cli>CSV yazarken \u003Cstrong>newline=''\u003C/strong> parametresi Windows ortamında ekstra boş satırları engeller.\u003C/li>\n  \u003Cli>Dosya yoksa kontrol etmek için \u003Cstrong>os.path.exists()\u003C/strong> veya \u003Cstrong>pathlib.Path.exists()\u003C/strong> kullanın.\u003C/li>\n  \u003Cli>Dosya erişim hatalarını yakalamak için \u003Cstrong>try/except\u003C/strong> bloğu kullanın (örn. \u003Cem>FileNotFoundError\u003C/em>, \u003Cem>PermissionError\u003C/em>).\u003C/li>\n  \u003Cli>Path yönetimi için \u003Cstrong>pathlib\u003C/strong> modern ve taşınabilir bir çözüm sağlar.\u003C/li>\n\u003C/ul>\n\u003Cp>Kısa bir hata yakalama örneği:\u003C/p>\n\u003Cp>\u003Cstrong>try:\u003Cbr>    with open('dosya.txt','r',encoding='utf-8') as f:\u003Cbr>        data = f.read()\u003Cbr>except FileNotFoundError:\u003Cbr>    print('Dosya bulunamadı')\u003C/strong>\u003C/p>\n\n\u003Ch3>Adım adım küçük proje: CSV'den filtreleyip yeni CSV oluşturma\u003C/h3>\n\u003Col>\n  \u003Cli>Kaynak CSV'yi DictReader ile açın ve alan adlarını alın.\u003C/li>\n  \u003Cli>Filtreleme koşulunuzu uygulayın (ör. yaş &gt;= 30).\u003C/li>\n  \u003Cli>DictWriter ile başlık yazıp filtrelenmiş satırları kaydedin.\u003C/li>\n\u003C/ol>\n\u003Cp>Örnek kod (özet):\u003C/p>\n\u003Cp>\u003Cstrong>import csv\u003Cbr>with open('kisiler.csv','r',encoding='utf-8') as infile:\u003Cbr>    reader = csv.DictReader(infile)\u003Cbr>    rows = [row for row in reader if int(row['yaş']) &gt;= 30]\u003Cbr>with open('ust30.csv','w',newline='',encoding='utf-8') as outfile:\u003Cbr>    writer = csv.DictWriter(outfile, fieldnames=reader.fieldnames)\u003Cbr>    writer.writeheader()\u003Cbr>    writer.writerows(rows)\u003C/strong>\u003C/p>\n\n\u003Ch3>Kontrol listesi (Quick checklist)\u003C/h3>\n\u003Cul>\n  \u003Cli>Doğru dosya yolu ve isim belirtildi mi?\u003C/li>\n  \u003Cli>Encoding (örn. utf-8) ayarlandı mı?\u003C/li>\n  \u003Cli>Bağlam yöneticisi (with) kullanılıyor mu?\u003C/li>\n  \u003Cli>CSV yazarken newline='' eklendi mi?\u003C/li>\n  \u003Cli>Gerekli izinler (read/write) mevcut mu?\u003C/li>\n\u003C/ul>\n\n\u003Chr>\n\u003Cp>\u003Cstrong>Kaynaklar ve ileri okuma:\u003C/strong>\u003C/p>\n\u003Cul>\n  \u003Cli>\u003Ca href=\"https://diveebi.com/python/pythonda-dosya-islemleri/\">Python'da Dosya İşlemleri — Diveebi\u003C/a>\u003C/li>\n  \u003Cli>\u003Ca href=\"https://muhammeddincer.com/python-ile-csv-dosya-okuma-ve-yazma/\">Python ile CSV Dosya Okuma ve Yazma — Muhammed DİNÇER\u003C/a>\u003C/li>\n  \u003Cli>\u003Ca href=\"https://www.facadium.com.tr/blog/pythonda-dosya-acma-ve-yazma-islemleri/\">Python’da Dosya Açma ve Yazma İşlemleri — Facadium\u003C/a>\u003C/li>\n\u003C/ul>\n\u003Cp>Bu rehberde verilen örnekler temel kullanım içindir; üretim ortamında dosya izinleri, büyük dosya optimizasyonu ve güvenlik kontrollerini projenizin ihtiyaçlarına göre değerlendirin.\u003C/p>","Python'da dosya açma, okuma, yazma ve CSV işlemleri için pratik örnekler, kod parçacıkları ve en iyi uygulamalar. Başlangıç için adım adım rehber.","Python Dosya İşlemleri, file handling python, csv okuma python, open read write python, dosya yazma örneği","python-dosya-islemleri-okuma-yazma-ve-csv-ornekleri","2026-04-06T09:28:13.000Z",{"id":15,"title":16,"slug":17},210,"Python Dosya İşlemleri","python-dosya-islemleri",{"id":19,"name":20,"nickname":21,"slug":22},92,"Burak Demirtaş","CodeMentor","burak-demirtas","/media/blog/59feed481bf13d9c59e14d5c88c8d9d5.jpg","/media/blog/59feed481bf13d9c59e14d5c88c8d9d5_thumb.jpg","/media/blog/59feed481bf13d9c59e14d5c88c8d9d5.webp","/media/blog/59feed481bf13d9c59e14d5c88c8d9d5_thumb.webp",null,{"minutes":29,"wordCount":30,"imageCount":31,"formatted":32},5,830,0,"5 dk okuma süresi","/blog/python-dosya-islemleri/python-dosya-islemleri-okuma-yazma-ve-csv-ornekleri",[],["Reactive",36],{"title":7,"subTitle":16,"image":23},["Reactive",38],{"title":7,"meta":39,"link":74},[40,42,44,47,50,53,56,59,62,65,68,70,72],{"hid":41,"name":41,"content":10},"description",{"hid":43,"name":43,"content":11},"keywords",{"hid":45,"name":45,"content":46},"author","Başlangıç Seviyesi Kod & Snippet Rehberi",{"hid":48,"name":48,"content":49},"robots","index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1",{"hid":51,"property":51,"content":52},"og:type","website",{"hid":54,"property":54,"content":55},"og:title","Başlangıç Kod & Snippet Rehberi | KodÖğreniyorum",{"hid":57,"property":57,"content":58},"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":60,"property":60,"content":61},"og:image","https://kodogreniyorum.com/media/blog/59feed481bf13d9c59e14d5c88c8d9d5.jpg",{"hid":63,"property":63,"content":64},"og:url","https://kodogreniyorum.com/blog/python-dosya-islemleri/python-dosya-islemleri-okuma-yazma-ve-csv-ornekleri",{"hid":66,"name":66,"content":67},"twitter:card","summary_large_image",{"hid":69,"name":69,"content":55},"twitter:title",{"hid":71,"name":71,"content":58},"twitter:description",{"hid":73,"name":73,"content":61},"twitter:image",[75,77],{"rel":76,"href":64},"canonical",{"rel":78,"href":79},"amphtml","https://amp.kodogreniyorum.com/blog/python-dosya-islemleri/python-dosya-islemleri-okuma-yazma-ve-csv-ornekleri",["Reactive",81],{"@context":82,"@graph":83},"https://schema.org",[84,97],{"@type":85,"headline":7,"image":61,"author":86,"publisher":89,"datePublished":13,"dateModified":13,"mainEntityOfPage":95,"description":10},"BlogPosting",{"@type":87,"name":20,"url":88},"Person","https://kodogreniyorum.com/yazarlar/burak-demirtas",{"@type":90,"name":46,"logo":91},"Organization",{"@type":92,"url":93,"width":94,"height":94},"ImageObject","https://kodogreniyorum.com/img/icons/favicon.png",32,{"@type":96,"@id":64},"WebPage",{"@type":98,"itemListElement":99},"BreadcrumbList",[100,105,109,112],{"@type":101,"position":102,"name":103,"item":104},"ListItem",1,"Ana Sayfa","https://kodogreniyorum.com",{"@type":101,"position":106,"name":107,"item":108},2,"Blog","https://kodogreniyorum.com/blog",{"@type":101,"position":110,"name":16,"item":111},3,"https://kodogreniyorum.com/blog/python-dosya-islemleri",{"@type":101,"position":113,"name":7,"item":64},4]