Python

Python Dosya İşlemleri

Dosya okuma ve yazma işlemlerine geçmeden önce, Python’un çalışma dizini ile ilgili ayarlarının yapılması gerekmektedir. Python dilinin varsayılan çalışma dizini, programın kurulduğu klasördür.

Çalışma Dizini Ayarları ve Klasör Oluşturma

Python’un bilgisayarın dosya sistemlerine erişmesi için “os” adındaki Python modülünün çağrılması gerekir. Komut satırından bu modüle ait getcwd() fonksiyonu çağrılarak programın mevcut çalışma dizini öğrenilebilir.

Bu adım, dosya işlemleri için temel bir hazırlık aşamasıdır. Şimdi, dosya okuma ve yazma işlemlerini gerçekleştirmek için bu temel ayarları nasıl kullanacağımızı inceleyelim.

Python’da os modülü ile çalışma dizinini öğrenmek oldukça basittir. İlgili kod bloğunu web sitesine uygun bir şekilde düzenleyelim:

Örnek Çıktı:

Bu kod, os modülü aracılığıyla mevcut çalışma dizinini alacak ve ekrana yazdıracaktır. Şimdi, bu kodu web sitenize ekleyebilir ve kullanıcıların çalışma dizinini öğrenmelerini sağlayabilirsiniz.

Örnek Çıktı:

Bu kod, mevcut çalışma dizinini aldıktan sonra chdir() fonksiyonu aracılığıyla çalışma dizinini “c:\calisma” olarak değiştirecek ve sonrasında yeni çalışma dizinini yazdıracaktır. Bu örnekle, çalışma dizinini değiştirmenin nasıl yapıldığını açıklamış oluyorsunuz.

Bakınız: Python Dersleri

Dosya ve klasörlerle çalışırken, bilgisayar dosya sistemlerindeki konumlarını belirtmek önemlidir. Bu, bir dosyaya erişmek, silmek veya değiştirmek için o dosyanın yolunun bilinmesini gerektirir. Python, bu işlemleri platformdan bağımsız olarak gerçekleştirebilmek için kullanışlı fonksiyonları içeren os.path alt modülünü sağlar.

Dosya Yolu Belirleme

Yol (Path), dosya veya klasörün bilgisayarın dosya sistemindaki konumunu belirtir. Python’da dosya ve dizin işlemlerini platformdan bağımsız bir şekilde yönetmek için os.path modülü kullanılır.

join() Fonksiyonu

join() fonksiyonu, Windows işletim sistemi için ters bölü (/) ve Unix işletim sistemi için bölü (/) işaretlerini doğru bir şekilde kullanarak yolları birleştirir. Bu sayede, aynı kodun hem Windows hem de Unix işletim sistemlerinde sorunsuz çalışması sağlanır.

split() Fonksiyonu

split() fonksiyonu ise verilen yol bilgisini platformdan bağımsız olarak parçalara ayırarak liste halinde sunar. Bu özellik, dosya yolu üzerinde çalışırken dosya adı, uzantısı ve klasör adları gibi bilgileri ayrıştırmak için kullanılır.

Örnek Kod:

Çıktı:

Yukarıdaki örnek, join() ve split() fonksiyonlarını kullanarak dosya yollarını doğru bir şekilde birleştirmeyi ve parçalamayı göstermektedir. Bu sayede, dosya işlemleri platformdan bağımsız olarak gerçekleştirilebilir.

Yolu Bilinen Klasör veya Dosyanın Var Olup Olmadığını Kontrol Etme

Program yazılırken, belirli bir dosya yolu altında bir dosyanın veya dizinin var olup olmadığını kontrol etmek önemlidir. Bu tür durumları değerlendirmek için Python, os.path modülü içinde yer alan exists() ve isdir() fonksiyonlarını sağlar.

exists() ve isdir() Fonksiyonları

  • exists(): Belirtilen dosya veya dizin yolunun var olup olmadığını kontrol eder. Eğer varsa True, yoksa False döner.
  • isdir(): Belirtilen yolun bir dizin olup olmadığını kontrol eder. Eğer bir dizinse True, değilse False döner.

Örnek Kod:

Çıktı:

Yukarıdaki örnek, exists() ve isdir() fonksiyonlarını kullanarak belirtilen yolun var olup olmadığını ve bir dizin olup olmadığını kontrol etmektedir. Bu tür kontroller, dosya işlemleri sırasında hata durumlarını önlemek veya özel durumları değerlendirmek için oldukça yararlıdır.

Klasör Oluşturma

Yeni bir klasör oluşturmak için mkdir() veya makedirs() fonksiyonları kullanılır. Ancak, önce belirtilen konumda aynı klasörün var olup olmadığını kontrol etmek önemlidir. Aşağıda, klasör varsa oluşturmaya yönelik örnek bir kod bulunmaktadır:

Çıktı:

Bu örnekte, öncelikle os.path.exists() fonksiyonu kullanılarak belirtilen klasörün var olup olmadığı kontrol edilir. Eğer klasör yoksa, os.mkdir() fonksiyonuyla yeni bir klasör oluşturulur. Aksi halde, klasör zaten varsa ilgili mesaj yazdırılır.

os.rename() ve os.rmdir() fonksiyonlarını kullanarak deneme adında bir dizin oluşturan, daha sonra bu dizinin ismini değiştiren ve en sonunda da silen bir örnek program bulunmaktadır:

Çıktı:

Dosyalara Erişme ve Okuma

Python programlama dili, dosya işlemleri için oldukça kullanışlı gömülü fonksiyonlar içerir. Bu fonksiyonlar, herhangi bir modülü içe aktarmadan doğrudan kullanılabilirler. Dosya işlemleri konusuna giriş yapmadan önce, çalışma dizinimizi “C:\calisma” klasörü olarak ayarlamış olmamız gerekiyor. Ayrıca, örneklerimize başlamadan önce bu dizinde “milli.txt” adında bir metin dosyası oluşturmalı ve içeriğini yazıp kaydetmelisiniz.

milli.txt İçeriği:

Mevcut bir dosyayı açmak için Python’da open() fonksiyonu kullanılır. Bu fonksiyon, belirtilen yolda bulunan dosyayı açar ve dosya nesnesi olarak programa döndürür. open() fonksiyonu, dosya ismi ve dosya açma biçimi (mod) olarak iki parametre alır. Dosyayı açmak için kullanılan dört farklı mod bulunmaktadır:

  • “r” (Okuma): Bu mod, bir dosyayı okumak için kullanılır. Eğer dosya hedefte yoksa, hata verir (varsayılan mod).
  • “a” (Ekleme): Bu mod, var olan bir dosyada düzenleme yapmak veya dosyaya eklemeler yapmak için kullanılır. Dosya hedefte yoksa, oluşturulur.
  • “w” (Yazma): Bu mod, bir dosyayı yazma modunda açar. Eğer dosya hedefte yoksa, oluşturulur.
  • “x” (Oluştur): Bu mod, belirtilen dosyayı oluşturur. Eğer dosya zaten varsa, hata döndürür.

Ayrıca, dosyanın içeriğini okumak için read() fonksiyonu kullanılır. Bu fonksiyon, açılmış olan dosyanın içeriğini tek bir metin bilgisi olarak okur. Bu dosya işlemleri, Python’da dosya manipülasyonu için temel adımları sağlar.

Python kodu kullanarak bu dosyayı açabilir ve içeriğini okuyabiliriz. Aşağıda, bu işlemi gerçekleştiren basit bir örnek bulunmaktadır:

Çıktı:

readline() ve readlines() fonksiyonlarını kullanarak dosyaları satır satır işleyen ve dosyayı kapatmayı unutmayan örnek bir Python kodu bulabilirsiniz:

Çıktı:

Dosya Oluşturma ve Yazma

Dosya oluşturma ve yazma işlemleri, Python programlamada oldukça yaygın olarak kullanılan bir konsepttir. Bu işlemleri gerçekleştirmek için open() fonksiyonu kullanılır ve dosyayı açarken “w” (write) parametresi ile beraber kullanılır. Örneğin:

Bu kod satırı, “hitabe.txt” adlı dosyayı yazma modunda açar. Eğer bu dosya zaten mevcutsa, önceki içeriği siler ve dosyayı yazma modunda açar. Eğer dosya bulunmuyorsa, belirtilen isimle yeni bir dosya oluşturur. Bu, dosyaya veri yazma işlemine hazır hale gelmesini sağlar. Bu özellikle, var olan bir dosyanın içeriğini değiştirmek veya yeni bir dosya oluşturmak istediğimizde kullanışlıdır.

Bakınız: Python Örnekleri

Açılan bir dosyaya veri yazmak için Python’da write() fonksiyonu kullanılır. Örneğin, aşağıdaki kod bloğu, çalışma dizinini “C:\calisma” klasörüne değiştirir, “hitabe.txt” adlı dosyayı yazma modunda açar ve ardından “Gençliğe Hitabe” isimli önemli bir metni bu dosyaya yazdırır:

Bu kodun çalıştırılmasıyla, “hitabe.txt” dosyasının içeriği, “Gençliğe Hitabe” metninin dört satırını içerecektir. Bu örnek, dosyaya yazma işlemi için basit ve anlaşılır bir örnektir.

Dosya yazma modunda ("w") açıldığında, dosyanın içeriğini okumak için dosyanın kapatılıp tekrar açılması gereklidir. Dosya kapatılmadan dosyanın içeriği okunmaya çalışılırsa, program hata verecektir. Bu nedenle, dosya üzerinde okuma ve yazma işlemleri sırasında dikkatli olunmalıdır.

Ayrıca, dosya içeriğine mevcut veriyi silmeden ekleme yapmak isteniyorsa, dosyanın “a” (append) parametresi kullanılarak açılması gerekir. Bu modda açılan dosyaya eklenen her yeni satır, mevcut verinin altına yazılacaktır.

Örneğin:

Çıktı:

Bu kod, “tarih.txt” dosyasını yazma modunda açar, tarih bilgisini dosyaya yazar, ardından dosyayı kapatır. Daha sonra dosyayı tekrar açar, içeriği okur ve ekrana basar. Sonrasında dosyayı ekleme (append) modunda açar, saat bilgisini dosyaya yazar, dosyayı kapatır. Son olarak dosyayı tekrar açar, güncellenmiş içeriği okur ve ekrana basar.

Belirtilen kod örneği, öncelikle belirli bir dizin ve dosya adını birleştirerek dosya yolunu oluşturur. Daha sonra os.path.exists() fonksiyonu ile oluşturulan dosya yolunun var olup olmadığı kontrol edilir. Eğer dosya yolunun var olduğu tespit edilirse, os.path.isfile() fonksiyonu kullanılarak bu konumun bir dosya olup olmadığı kontrol edilir. Eğer belirtilen konum bir dosya ise ilgili bilgi ekrana yazdırılır, aksi takdirde “bir dosya değil” mesajı görüntülenir. Eğer dosya yolunun var olmadığı tespit edilirse, “Yol bulunamadı!” mesajı ekrana yazdırılır.

Örnek:

Çıktı:

Dosya Silme ve Yedekleme

Mevcut bir dosyayı silmek için Python’da os modülünün remove() fonksiyonu kullanılır. Aşağıdaki örnek kodda, belirtilen dosyanın var olup olmadığı kontrol edilir. Eğer dosya mevcutsa, remove() fonksiyonu kullanılarak dosya silinir:

Çıktı:

Python’da dosya silme işlemleri için os modülünün remove() fonksiyonu kullanılır. Aşağıdaki örnekte, daha önce oluşturulan “tarih.txt” dosyası silinmektedir. Kodun tekrar çalıştırılması durumunda dosya silindiği için “Dosya mevcut değil.” çıktısı alınacaktır.

Ancak, çalışılan dosyaların olumsuz durumlara karşı yedeklenmesi önemlidir. Veri ve emek kaybını önlemek için Python’da os modülü ile birlikte kullanılabilecek shutil adlı modül bulunmaktadır. Aşağıdaki örnekte, os ve shutil modülleri kullanılarak daha önce oluşturulan “tarih.txt” dosyası, yeni oluşturulacak “yedek” adlı klasöre “tarihyedek.txt” ismi ile kopyalanarak yedeklenecektir:

Çıktı:

Bu kod örneği, “tarih.txt” dosyasının yedeklenmesini sağlar. Eğer dosya mevcut değilse, “Dosya mevcut değil.” mesajını ekrana basar.

Sonuç

Python dosya işlemleri, programcılara güçlü araçlar sunarak çalışma dizinini ayarlama, klasör oluşturma, dosya yolu belirleme, varlık kontrolü, dosya ve klasör oluşturma, dosyaları okuma, yazma, silme ve yedekleme gibi işlemleri kolaylıkla gerçekleştirme olanağı tanır. Bu makalede, Python’un os modülü ile sağladığı fonksiyonları kullanarak dosya işlemleri üzerinde nasıl kontrol sağlanabileceğini detaylı bir şekilde inceledik.

Çalışma Dizini Ayarları ve Klasör Oluşturma: Python, çalışma dizinini ayarlamak için “os” modülünü kullanır. Ayrıca, mkdir() veya makedirs() fonksiyonları ile klasör oluşturabiliriz.

Dosya Yolu Belirleme: Python, dosya yollarını belirleme ve işleme için os.path modülünü kullanır. join() ve split() fonksiyonları, dosya yollarını platform bağımsız bir şekilde yönetmeyi sağlar.

Yolu Bilinen Klasör veya Dosyanın Var Olup Olmadığını Kontrol Etme: exists() ve isdir() fonksiyonları ile dosya veya klasörün var olup olmadığını kontrol edebiliriz.

Klasör Oluşturma: mkdir() veya makedirs() fonksiyonları ile belirli bir konumda yeni bir klasör oluşturabiliriz.

Dosyalara Erişme ve Okuma: Python’da dosya okuma işlemleri için open() fonksiyonu kullanılır. Dosyaya erişmek ve içeriğini okumak için farklı modlar kullanılabilir.

Dosya Oluşturma ve Yazma: Dosya oluşturmak ve içine yazmak için open() fonksiyonu ile “w” (write) modu kullanılır.

Dosya Silme ve Yedekleme: remove() fonksiyonu ile dosya silme ve mevcut dosyayı yedekleme işlemleri gerçekleştirilebilir.

Bu makale, Python ile dosya işlemleri konusunda temel bilgileri içermektedir. Dosya işlemleri, bir programcının günlük görevlerinde sıkça kullanılan ve ihtiyaç duyulan önemli bir konsepttir. Python’un sunduğu modüller ve fonksiyonlar, bu işlemleri daha anlaşılır ve etkili bir şekilde gerçekleştirmemize olanak tanır. Dosya işlemleri, Python dilinin güçlü ve çok yönlü yapısının bir örneğidir, bu nedenle her programcının bu konuda sağlam bir anlayışa sahip olması önemlidir.

Yorum Yap

Yorum yapmak için tıklayın