Python'da Dosya İşlemleri ve Dizin Yönetimi

Python'da Dosya İşlemleri ve Dizin Yönetimi

Python programlama dilinde, dosya işlemleri ve dizin yönetimi oldukça önemlidir Bu makale, Python'da dosya işlemleri hakkında bilgi sahibi olmak isteyenler için harika bir kaynak Dosyaların okunması, yazılması, kopyalanması ve silinmesi gibi konularının yanı sıra, dizin işlemleriyle ilgili de detaylı bilgi veriliyor Python ile dosya ve dizin işlemlerini öğrenmek için bu makaleyi mutlaka okuyun!

Python'da Dosya İşlemleri ve Dizin Yönetimi

Python programlama dilinde dosya işlemleri ve dizin yönetimi oldukça önemlidir. Bu işlemler sayesinde programlarınızın kullanıcılar tarafından üretilen verileri yönetmesi ve saklaması mümkün olmaktadır. Dosya işlemleri, Python dili tarafından desteklenen yapılardan biridir ve sıklıkla kullanılan bir fonksiyonelitedir. Dizin yönetimi ise, dosyalarınızın saklanacağı klasörlerin oluşturulması ve yönetilmesini ifade etmektedir.

Bu makalede, Python'da dosya işlemleri ve dizin yönetimi hakkında temel bilgileri ele alacağız. Dosya işlemleri ile okuma, yazma ve ekleme işlemlerinin nasıl yapılacağına, açma modlarına ve dosyaların kapatılmasına değineceğiz. Dizin yönetimi kapsamında ise, bir dizin yaratma, dizin içindeki dosyaların listesi ve dizinlerin silme işlemleri hakkında bilgiler sunacağız.


Dosya İşlemleri

Python, birçok dosya türüne erişme ve veri okuma ya da yazma teknikleri için kullanılan bir programlama dili olarak öne çıkar. Dosya işlemleri, Python programının birçok farklı veri kaynağından veri almasına ve veri yazmasına olanak tanır. Python'da dosya işlemleri, dosya açma modları ve dosya kapatma gibi konuları kapsar.

Python'da dosya açmak için, open() fonksiyonu kullanılır. Bu fonksiyon, dosyayı açmak için gerekli olan dosya yolunu, dosya adını ve dosya açma modunu içerir. Dosya açma modları, dosyanın hangi amaçla açıldığını belirler. Dosya açarken kullanılan üç temel dosya açma modu, okuma, yazma ve ekleme modlarıdır.

Dosya Açma ModuKullanım Amaçları
'r'Dosya okumak için kullanılır. Bu mod, varsayılan dosya açma modudur.
'a'Dosyaya ekleme yapmak için kullanılır. Var olan dosyaya yazı eklemek için kullanılır.
'w'Yeni bir dosya oluşturmak ya da var olan bir dosyayı silmek ve onun yerine yeni bir dosya yazmak için kullanılır.

Python'da dosya işlemleri sırasında kullanılan read(), write() ve append() fonksiyonları da oldukça önemlidir. read() fonksiyonu, dosya içeriğini okumak için kullanılır. write() fonksiyonu, yeni bir dosya oluşturmak veya var olan bir dosyaya yazı yazmak için kullanılır. append() fonksiyonu ise, var olan bir dosyaya ekleme yapmak için kullanılır.

Dosyaların işlemi bittikten sonra kapatılması da oldukça önemlidir. Dosyalar, okuma veya yazma işleminden sonra kapatılmalıdır. Ayrıca, açık dosyalar da düzgün şekilde yönetilmelidir. Bunu yapabilmek için, fclose() fonksiyonu kullanılabilir.


Dosya Açma Modları

Dosya işlemleri yaparken dosyayı açma işlemi, işlemlerin temel adımıdır. Python'da dosya açma işlemi değişik modlarla gerçekleştirilebilir. Dosya açma modları, dosyayı hangi amaçla açacağımıza göre belirlenmektedir. Bu modlar şunlardır:

  • r: Dosya okuma modunda açılır. Dosya başından itibaren okunur.
  • w: Dosya yazma modunda açılır. Dosya baştan oluşturulur veya baştan yazılır.
  • a: Append modunda açılır. Dosya varsa, dosyanın sonuna ekleme yapılır. Yoksa yeni dosya oluşturulur.
  • x: Exclusive modunda açılır. Dosya önceden varsa, açılmayacaktır.

Dosya açma modlarının kullanım amacı şu şekildedir:

r: Dosya okuma modunda açılır. Dosyayı okuyup dosya içeriğini kullanmak için kullanılır. Dosya varsa açılır, yoksa hata verir.

w: Dosya yazma modunda açılır. Bir dosyayı oluşturmak veya silmek için kullanılır. Dosya yoksa oluşturulur, varsa üzerine yazılır.

a: Append modunda açılır. Dosya varsa, dosyanın sonuna ekleme yapmak için kullanılır. Yoksa yeni dosya oluşturulur.

Python'da dosya işlemleri yaparken, dosyaların açılırken hafızada ne kadar yer kaplayacağı önemlidir. Dosya işlemlerinin ardından işlem yapmadığınız dosyaları kapatmanız gerekir. Bu sayede açık dosya bırakmanın gereksiz bellek tüketimini önlemiş olursunuz. Dosya kapatmak için fclose() fonksiyonu kullanılır.


read()

Python'da dosya açma işlemi yaparken, öncelikle dosya açma modlarının ne işe yaradığını bilmek gerekir. Dosya açma modları, hangi amaçla dosyanın açıldığını belirlemek için kullanılır. Dosya açma modlarına örnek olarak "r", "w", ve "a" gibi seçenekler sayılabilir.

Bir dosyanın içeriğini okumak için "r" modu kullanılır. Bu modu kullanarak dosyanın sadece okunabilecek şekilde açılması sağlanır. Dosya içeriği okunduktan sonra, dosyanın kapatılması gerekmektedir. Dosya kapatma işlemi, dosyanın hem okuma modundan hem de bellekten silinmesini sağlar.

Dosyanın açılması için, öncelikle açılacak dosyanın konumunu bilmek gerekiyor. Ardından, "open()" komutu kullanılarak dosya açılır. Aşağıda, bir dosyanın açılması ve okunması için kullanılan kod bloğu yer almaktadır:

Kod Açıklama
dosya = open("ornek.txt", "r") "ornek.txt" adlı dosyanın "r" modunda açılması ve dosya değişkenine atanması
içerik = dosya.read() Dosya içeriğini "içerik" değişkenine atama
print(içerik) Dosya içeriğinin ekrana yazdırılması
dosya.close() Dosya kapatma işlemi

Yukarıdaki kod bloğunda "ornek.txt" adlı dosya "r" modunda açılmış ve dosya içeriği "içerik" adlı değişkene atılmıştır. Daha sonra, dosya içeriği "print()" komutu kullanılarak ekrana yazdırılmıştır. Son olarak, dosya kapatma işlemi gerçekleştirilmiştir.


write()

Python'da dosya işlemleri yaparken sıklıkla kullanılan yazma modu, yeni bir dosya oluşturma veya var olan dosyada değişiklik yapabilme imkanı sağlar.

Yazma modu, açılmak istenen dosyanın adının yanına "w" harfi eklenerek kullanılır. Örneğin, test.txt dosyasını yazdırmak istiyorsak şöyle bir komutla başlarız:

Dosya AdıAçıklama
f = open("test.txt", "w")test.txt dosyasını yazma modunda açıyoruz

Ardından, dosya üzerinde değişiklikler yapabiliriz:

KomutAçıklama
f.write("Bu bir test dosyasıdır")test.txt dosyasına veri yazdırıyoruz
f.close()test.txt dosyasını kaydedip kapıyoruz

Yukarıdaki örnekte, yazdığımız doğru bilgiyi "test.txt" adlı dosyaya yazdık. f.write komutu, string gibi veri tiplerini dosyada saklamak için kullanılır ve f.close komutu dosyanın işlemden sonra kapatılması için kullanılır.

Bazı durumlarda, dosyayı açarken yeni bir dosya oluşturmak isteyebiliriz. Bunun için yazma modunda açarken dosya adı yerine yeni dosya adı yazarak başlayabiliriz:

KomutAçıklama
f = open("yenidosya.txt", "w")"yenidosya.txt" adlı yeni bir dosya oluşturduk

Yazma modu, aynı zamanda varolan bir dosyada da kullanılabilir. Dosyayı açarken, üzerine yazmak istenilen dosyanın adı ve açma modu belirtilir:

KomutAçıklama
f = open("test.txt", "w")"test.txt" dosyasını yazma modunda açıyoruz
f.write("Bu yazı dosya üzerine eklendi.")"test.txt" dosyasının üzerine yeni bir veri yazıyoruz
f.close()"test.txt" dosyasını kaydedip kapıyoruz

Yazma modunu kullanırken, varolan bir dosyanın üzerine yazılması durumunda, dosyadaki önceki içeriği kaybetme riski de vardır. Bu nedenle, varolan bir dosyaya ekleme yapmak istiyorsak append() modunu kullanmamız gerekir.


append()

fonksiyonu, var olan bir dosyaya yeni veriler eklememizi sağlar. Bu fonksiyon, dosya içeriğinin sonuna eklemeler yapar ve önceden yazılmış olan verileri bozmaz.

Append modu kullanarak bir dosyaya veri yazmak için, önce dosyayı açmamız ve ardından dosya yöntemimizi append modu olarak belirtmemiz gerekmektedir. Aşağıdaki örnek kodda, "example.txt" adlı bir dosyaya "Bu bir örnek yazıdır" yazısı eklendiğini görebiliriz:

Kod: Açıklama:
file = open("example.txt", "a") "example.txt" dosyası açıldı (vardiya modu)
file.write("Bu bir örnek yazıdır") "Bu bir örnek yazıdır" yazısı dosyanın sonuna eklendi
file.close() Dosya kapatıldı

Bu kodu çalıştırdığımızda, "example.txt" dosyasının sonunda "Bu bir örnek yazıdır" yazısı görünecektir. Ayrıca, dosyanın önceden yazılmış olan verileri etkilenmeden kalacağından emin olabiliriz.


Dosya Kapatma

Dosya işlemleri sırasında dosyaların açılıp kapatılması oldukça önemlidir. Dosye işlemi tamamlandıktan sonra dosyalar mutlaka kapatılmalıdır. Dosyaların açık kalması, bellek sorunlarına sebep olabilir, işletim sistemine büyük bir yük getirebilir. Python'da dosyaların otomatik olarak kapatılmadığını, kullanıcının bu işlemi manuel olarak gerçekleştirmesi gerektiğini unutmamak gerekir.

Dosya kapatma işlemi, dosya yönetiminde oldukça önemlidir. Dosyayı kapatan işlem, dosya işlemi sırasında oluşan boş bellekleri temizler ve işletim sistemi üzerindeki önbellek içeriğini temizler. Dosyada yapılan tüm değişiklikler, dosya işleminden çıktıktan sonra gerçekleşir. Açık kalan dosyaların, hafıza kullanımını arttırarak, performans sorunlarına sebep olduğunu unutmamak gerekir.

Dosya kapatmak için, kullanılacak dosya nesnesi üzerinde'close()' fonksiyonu kullanılır. Dosyaların açık kalıp kalmadığını kontrol etmek için ise, 'closed' fonksiyonu kullanılır. Bir dosyanın kapalı olduğunu kontrol etmek için, 'closed' fonksiyonuna bakmak yeterlidir. Dosya kapandıktan sonra, üzerinde gerçekleştirilecek işlemler hata verecektir.


Dizin Yönetimi

Python'da dizin oluşturma ve yönetimi oldukça kolaydır. Dizin oluşturma işlemi için os modülünde yer alan mkdir() fonksiyonu kullanılarak işlem yapılır. Fonksiyona parametre olarak oluşturulacak dizinin tam yolunu veririz. Eğer dizin oluşursa fonksiyon herhangi bir şey döndürmez. Ayrıca birden fazla dizin de oluşturabilirsiniz. Bunun için os.makedirs() fonksiyonu kullanacağız.

Dizin içerisinde bulunan dosyaları listeleyebilmek için yine os modülünde bulunan listdir() fonksiyonundan yararlanacağız. Bu fonksiyon, parametre olarak verilen dizinin içindeki tüm dosyaların isimlerini bir listede toplar ve bu liste döndürülür. Dizinlerin içinde diğer dizinler de olabileceği için, bu fonksiyon ikinci bir parametre olarak, eğer alt dizinler de görüntülenmek istenirse true değeri alır.

Bir dizinde bulunan dosyaları silmek için iki fonksiyon vardır. Bunlardan biri os.unlink(), diğeri ise os.remove() fonksiyonudur. Eğer silmek istediğimiz şey bir klasör ise, os.rmdir() fonksiyonunu kullanmalıyız. Ancak, bu fonksiyon yalnızca boş klasörleri silebilir. Eğer klasör içinde dosyalar varsa, bu fonksiyon bir hata verir. Klasör içindeki tüm dosyaları silmek istiyorsak, shutil modülünü kullanabiliriz. Ayrıca, belirli bir dosyayı silmek istiyorsak, os.unlink() fonksiyonunu kullanmalıyız.

  • Dizin oluşturma: os.mkdir() ve os.makedirs() fonksiyonları ile oluşturulur.
  • Dizin listesi alma: os.listdir() fonksiyonu ile işlem yapılır.
  • Dosya silme: os.unlink() ve os.remove() fonksiyonları ile yapılabilir. Klasör silmek için ise os.rmdir() kullanabiliriz.
Fonksiyon Adı Parametreler Açıklama
os.mkdir() Dizin yolu Belirtilen yolda bir dizin oluşturur.
os.makedirs() Dizin yolu Belirtilen yolda bir dizin oluşturur. alt dizinler dahil.
os.listdir() Dizin yolu Belirtilen dizindeki dosyaların listesini döndürür.
os.unlink() Dosya yolu Dosyayı siler.
os.remove() Dosya yolu Dosya veya sembolik bağlantıyı siler.
os.rmdir() Dizin yolu Dizini siler.

Dizin Yaratma

Python'da dizin yaratmak oldukça basittir. Bunun için os modülü kullanılır. İlk olarak, os modülü import edilmelidir. Dizin yaratma işlemi os.makedirs() fonksiyonu ile gerçekleştirilir. Bu fonksiyon içinde yaratmak istediğiniz dizinin adı ve yolu (opsiyonel) yer alır.

Fonksiyon İsmi Açıklama
makedirs() Belirtilen yolda yeni bir dizin yaratır ve alt dizinleri de dahil eder.
mkdir() Belirtilen yolda yeni bir dizin yaratır. Ancak alt dizinleri yok sayar.

Syntax:

os.makedirs(path, mode=0o777, exist_ok=False)

  • path: Yaratmak istediğiniz dizin yolu.
  • mode: Dizin izinleri. Varsayılan değer 0o777'dir.
  • exist_ok: Eğer belirtilirse, dizin zaten varsa hata vermez.

Örnek:

import osos.makedirs('C:/Users/Kullanıcı/Dosyalar/Yeni Dizin')

Bu kodda "C:/Users/Kullanıcı/Dosyalar/" yolu altında "Yeni Dizin" adlı bir dizin yaratılır. Ayrıca, dizin oluştuğunda hiçbir hata fırlatılmayacaktır. Eğer dizinler varsa ve hata alıyorsanız, exist_ok parametresini True olarak ayarlayabilirsiniz.

Dizin yaratma adımlarının ardından, dizinde farklı dosyalar yaratmak ve bu dosyaları çeşitli işlemlerle yönetmek mümkündür.


Listeleme ve Silme

Dizinlerde bulunan dosyaları listelemek için, Python'da listdir() fonksiyonu kullanılır. Bu fonksiyon, belirtilen dizinde bulunan dosyaların bir listesini döndürür ve bu sayede dosya işlemleri daha da kolay hale gelir. Ayrıca, bir dosyayı silmek için remove() fonksiyonu kullanılır. Bu fonksiyon, parametre olarak verilen dosyayı belirtilen dizinde arar ve bulduğu takdirde siler.

Dizinlerde bulunan dosyaların silinmesi ise rmdir() fonksiyonu kullanılarak gerçekleştirilir. Bu fonksiyon, belirtilen dizini arar ve eğer bulursa siler. Ancak, bu dizin içinde dosyalar veya alt dizinler varsa, silme işlemi gerçekleştirilemeyeceği için önce içeriğin silinmesi gerekmektedir.

Dizinlerin listelenmesi ve silinmesi işlemleri, dosyalara erişimde oldukça önemli bir yere sahiptir. Bu işlemler sayesinde dosya ve dizinler kolaylıkla yönetilebilir ve ihtiyaç duyulan işlemler rahatlıkla yapılabilir.


listdir()

Python programlama dili ile dosya işlemleri ve dizin yönetimi oldukça kolaydır. Dizinde bulunan dosyaların listesi almak da oldukça basittir. Bunun için listdir() fonksiyonu kullanılır. listdir() fonksiyonu, bir dizindeki tüm dosyaların listesini verir. Ayrıca, dir() fonksiyonu da hangi dizinlerin kullanılabileceğini gösterir.

Örnek olarak, aşağıdaki kod parçası, "example_directory" adlı bir dizindeki tüm dosyaları gösterir:

import osdir_path = "example_directory"dir_list = os.listdir(dir_path)print("Dosya listesi: ", dir_list)

Bu kod, belirtilen dizindeki tüm dosya isimlerini alır ve listeye ekler. listdir() fonksiyonu, dosya adlarının yanı sıra dizindeki alt dizinleri de gösterir. Bu nedenle, belirli bir uzantıya sahip dosyaları listelemek isterseniz, örnek olarak glob() fonksiyonunu kullanabilirsiniz. Bu fonksiyon, belirli bir uzantıya sahip dosyaları filtreleyebilir.

Bu örnekler, Python'da dosya işlemleri ve dizin yönetimine yönelik bir giriş hakkında yeterli bilgi sağlamaktır. Daha fazla bilgi için Python dökümantasyonu referans alınabilir.


rmdir()

Python'da dizin silme işlemi, 'rmdir()' metodu ile gerçekleştirilir. Bu metot, belirtilen dizini sistemde siler. Ancak, belirtilen dosya içinde dosyalar veya alt dizinler varsa, dizin silinemez. Bu nedenle, öncelikle dizindeki tüm alt öğelerin silinmesi gerekmektedir.

Öncelikle, silinecek dizinin yolunu belirlemek için 'os' modülü kullanılır. Daha sonra, 'rmdir()' metodu ile belirtilen dizin sistemden silinir. Eğer dizin silinemedi ise, çalışma zamanı hatası verir.

Örnek olarak, aşağıdaki kod bloğu kullanılabilir:

```pythonimport os

# Silinecek dizinin yolu belirlenirdirectory = "/home/user/dizin"

# Dizin silinirtry: os.rmdir(directory) print("Dizin silindi")except OSError as e: print("Dizin silinemedi:", e)```

Yukarıdaki kod parçasında, 'rmdir()' metodu ile 'directory' değişkeninde belirtilen dizin silinir. Ancak, dizin altında dosya veya dizin varsa, 'OSError' hatası verir. Ayrıca, 'try-except' blokları kullanarak olası hatalara karşı önlem alınır.

Dizin silme işlemi sırasında, yanlışlıkla önemli dosyaların silinmesi gibi hatalar oluşabilir. Bu nedenle, dizin silme işlemi öncesinde dosyaların yedeklenmesi önemlidir. Bu işlem için, 'shutil' modülü kullanılabilir.


remove()

remove() fonksiyonu, belirtilen dosyanın kalıcı olarak silinmesini sağlar. Python'da dosya silme işlemi yapmadan önce, dosya açılıp kapatılmalıdır. Dosya silme işlemi yapmak için, 'os' modülüne ihtiyaç duyulur. Ayrıca, silinmesi istenen dosya adı tam olarak belirtilmelidir.

remove() fonksiyonu, aşağıdaki gibi kullanılır:

Syntax Açıklama
os.remove("dosya_adı") Belirtilen dosyanın silinmesini sağlar.

Bu fonksiyon kullanılarak dosya silmek oldukça kolaydır. Ancak, silinen dosyalar geri getirilemez, bu nedenle dosya silme işlemi yapmadan önce dikkatli olmak önemlidir. Ayrıca, silme işlemi sırasında kullanıcılardan onay almak daha güvenli olabilir.

remove() fonksiyonu, yalnızca dosyaları değil, boş dizinleri de silebilir. Bir dizindeki tüm dosyaları ve alt dizinleri silmek istiyorsanız, önce shutil modülünü kullanarak dizini silmeniz gerekir.

Silme işleminden sonra dosyanın başarıyla silindiğini doğrulamak için, listdir() fonksiyonu kullanılabilir. Bu fonksiyon bir dizinin içindeki dosyaların listesini döndürür ve silinen dosyanın bu listede olup olmadığını kontrol edebilirsiniz.