Giriş
Python, güçlü bir programlama dili olarak, dosya ve dizin yönetimi gibi temel sistem görevlerini yerine getirebilmemiz için oldukça kullanışlı bir OS (Operating System) modülünü içerisinde barındırır. Bu modül sayesinde dosya sistemini kontrol edebilir, dizinleri listeleyebilir ve dosyaların üzerinde işlem yapabiliriz. Bu yazıda, Python’un os modülünü kullanarak dosyaları ve dizinleri nasıl listeleyeceğinizi öğreneceksiniz. Hadi başlayalım!
Os Modülüne Giriş
Python’da os modülü, işletim sistemi ile etkileşim kurmamızı sağlayan bir kütüphanedir. Dosya ve dizin işlemleri, çevresel değişkenleri yönetme, süreçleri işleme alma ve daha birçok işletim sistemi işlevini destekler. Modülü kullanmak için öncelikle Python dosyamızda içe aktarmamız gerekir:
import os
Şimdi os modülünü içe aktardık, gelelim bu modülün sunduğu bazı fonksiyonları kullanarak dosyaları ve dizinleri listelemeye.
Dizin Listeleme Yöntemleri
İlk olarak mevcut dizindeki dosyaları ve dizinleri listelemek için kullanabileceğimiz yöntemlere göz atacağız. os.listdir() fonksiyonu, belirtilen dizindeki tüm dosya ve dizinleri listelememizi sağlar. Kullanımı oldukça basittir.
Aşağıdaki örnekte, mevcut dizindeki dosya ve dizinlerin adlarını alalım:
import os
dizin = os.getcwd() # Mevcut çalışma dizinini al
liste = os.listdir(dizin) # Dizin içeriğini listele
for eleman in liste:
print(eleman)
Bu kod parçası, çalıştığınız dizindeki tüm dosya ve dizin adlarını sıralayacaktır. Ancak, bazen yalnızca belirli uzantılara sahip dosyaları listelemek isteyebilirsiniz. Bunu yapmak için listeyi filtreleyebiliriz.
Belirli Uzantılara Sahip Dosyaları Listeleme
Belirli bir dosya uzantısı ile başlayarak dosyaları listelemek için, os.listdir() ile elde ettiğimiz listeyi bir döngü yardımıyla filtreleyebiliriz. İşte .txt uzantılı dosyaları listeleyen bir örnek:
txt_dosyalari = [dosya for dosya in os.listdir(dizin) if dosya.endswith('.txt')]
print(txt_dosyalari)
Bu kod, yalnızca mevcut dizindeki .txt uzantılı dosyaların adlarını listeleyecektir. Bu yöntemle, ihtiyacınıza göre farklı uzantılardaki dosyaları kolayca bulabilirsiniz.
os.scandir() Kullanarak Dizin İçeriğini Listeleme
Python 3.5 ile birlikte gelen os.scandir() fonksiyonu, dosya ve dizinleri listelemek için daha gelişmiş bir yöntem sunar. Bu metod, daha hızlı ve daha verimli bir etkileşim sağlar. Ayrıca, dosya türünü kolaylıkla belirlemenizi sağlar.
Aşağıdaki örnekte, os.scandir() kullanarak mevcut dizindeki dosyaları ve dizinleri ayırt edelim:
with os.scandir(dizin) as entries:
for entry in entries:
if entry.is_file():
print(f'Dosya: {entry.name}')
elif entry.is_dir():
print(f'Dizin: {entry.name}')
Yukarıdaki kodda, ilgili dizindeki her bir giriş için dosya mı yoksa dizin mi olduğuna karar verip, ismini yazdırıyoruz. Bu sayede daha fazla bilgiye ulaşmış oluyoruz.
Os Yöntemleri ile Dizin Yönetimi
Dizin yönetimi yapılırken, dosyaları doğrudan listelemek dışında, dizinleri oluşturmak, silmek veya değiştirmek de mümkündür. Örneğin, os.mkdir() fonksiyonu yeni bir dizin oluşturmanıza yarar.
yeni_dizin = 'yeni_klasor'
if not os.path.exists(yeni_dizin):
os.mkdir(yeni_dizin)
print(f'{yeni_dizin} dizini oluşturuldu!')
Bu kod, belirtilen dizin mevcut değilse yeni bir dizin oluşturur. Dizin yönetiminde, hata kontrolü yapmak da önemlidir. Bu yüzden, os.path.exists() ile dizinin mevcut olup olmadığını kontrol ediyoruz.
Dizin Silme İşlemleri
Oluşturduğumuz dizinleri silmek için ise os.rmdir() fonksiyonunu kullanabiliriz. Ancak unutulmamalıdır ki, sadece boş dizinler silinebilir. Aşağıda dizin silme işlemine örnek verelim:
try:
os.rmdir(yeni_dizin)
print(f'{yeni_dizin} dizini silindi!')
except OSError as e:
print(f'Dizin silinemedi: {e}')
Yukarıdaki kodda, silme işleminden önce try-except bloğu kullanarak hata yönetimini sağlıyoruz. Eğer dizin boş değilse, hata fırlatılacak ve hata mesajı yazdırılacaktır.
Sonuç ve Uygulamalar
Python ile os modülü kullanarak dosya ve dizinler üzerinde başarılı bir şekilde listeleme ve yönetme işlemleri gerçekleştirmek mümkündür. Gördüğünüz gibi, mevcut dizinden dosya ve dizinleri listelemek, belirli uzantılara sahip dosyaları filtrelemek ve yeni dizinler oluşturmanın yanı sıra, dizin silme gibi işlemler de oldukça kolaydır.
Bu bilgiler, Python’da dosya ve dizin yönetimi konusunda başlangıç seviyesindeki yazılımcılar için oldukça faydalıdır. İlerleyen aşamalarda, yazılım projelerinizde dosya yönetimi gereksinimlerinizi karşılamak için bu temel bilgileri uygulayabilirsiniz.
Python ve os modülü ile daha fazla deney yapmaktan çekinmeyin. Kendi projelerinizde kod yazarken, ihtiyacınıza göre bu yöntemleri genişletebilir ve daha gelişmiş işlevler ekleyebilirsiniz. Unutmayın, pratik yaparak öğrenmek en etkili yoldur!