Python ile Klasördeki Dosya İsimlerini Alma

Giriş

Python, dosya sistemleri ile etkileşim kurmak için oldukça kullanışlı bir dildir. Özellikle dosya adlarını almak, bu dilin temel yeteneklerinden biridir. Bu yazıda, Python kullanarak bir klasördeki dosya isimlerini almanın çeşitli yollarını keşfedeceğiz. Python’daki os ve pathlib gibi modülleri kullanarak, dizinleri etkin bir şekilde yönetebiliriz. Bu özellik, yazılımlar geliştirenler için büyük bir avantajdır.

Özellikle belirli bir klasördeki dosyaların listesini almak gerektiğinde, bunu kolayca gerçekleştirebiliriz. Örneğin, bir projenin belgelerini tutan bir klasörü yönetirken ya da belirli şartlara uygun dosyaları bulmak isterken, Python ile bu işlemleri yapmak oldukça pratik bir yaklaşımdır. Dosya isimlerini almanın birçok yöntemi var ve bu yazıda, adım adım en etkili yolları inceleyeceğiz.

Hadi gelin, klasördeki dosyaları almak için hangi adımları izlememiz gerektiğine bir göz atalım. Amacımız, olası hataları bertaraf ederek temiz ve anlaşılır bir şekilde dosya isimlerini elde etmektir.

Os Modülü ile Dosya İsimlerini Alma

Python’da klasördeki dosya isimlerini almak için en yaygın yöntem, os modülünü kullanmaktır. Bu modül, işletim sistemi ile etkileşimde bulunmak için gerekli olan fonksiyonları sağlar. Klasördeki dosyaları listelemek için os.listdir() fonksiyonunu kullanabiliriz. Bu fonksiyon, belirttiğimiz bir dizindeki dosya ve klasörlerin isimlerini içeren bir liste döndürür.

Aşağıda, ‘os’ modülünü kullanarak bir klasördeki dosyaları almanın basit bir örneğini görebilirsiniz:

import os

dizin_yolu = 'örnek_klasör/'

# Klasördeki dosya ve klasörleri listeleme
try:
    dosya_listesi = os.listdir(dizin_yolu)
    print('Klasördeki dosyalar ve dizinler:')
    for dosya in dosya_listesi:
        print(dosya)
except FileNotFoundError:
    print('Klasör bulunamadı!')

Yukarıdaki kodda, belirttiğimiz dizin içindeki tüm dosyaların ve klasörlerin isimleri alınarak ekrana yazdırılmaktadır. Hatalı bir dizin yolu girildiğinde, kullanıcıya uygun bir hata mesajı gösterilecektir. Bu, kullanıcı deneyimini iyileştiren basit ama etkili bir yöntemdir.

Os modülünün bir diğer avantajı, döndürdüğü listedeki öğelerin hem dosya hem de klasör olabileceğidir. Bu sayede, tüm içerikleri kolayca görebiliriz. Ancak, eğer yalnızca dosyaları almak istiyorsanız, bir kontrol mekanizması eklemeniz gerekebilir.

Yalnızca Dosyaları Listelemek İçin

Eğer yalnızca dosya isimlerini almak istiyorsanız, os.path modülünü kullanarak her bir öğenin dosya mı yoksa klasör mü olduğunu kontrol edebiliriz. İşte bu yöntemi kullanarak yalnızca dosyaları listeleyen bir örnek:

import os

dizin_yolu = 'örnek_klasör/'

dosya_listesi = os.listdir(dizin_yolu)

print('Klasördeki dosyalar:')
for dosya in dosya_listesi:
    if os.path.isfile(os.path.join(dizin_yolu, dosya)):
        print(dosya)

Burada, os.path.isfile() fonksiyonu ile her bir dosyanın gerçekten bir dosya olup olmadığını kontrol ediyoruz. Bu durumda yalnızca dosyalar ekrana yazdırılacak ve klasörler göz ardı edilecektir.

Bu yaklaşım, dosya yönetimi yapan uygulamalar geliştirirken oldukça faydalıdır. Kullanıcıların yalnızca gerçek dosyaları görmesini sağlayarak, bilgi kirliliğini önleriz.

Pathlib Modülü ile Dosya İsimlerini Alma

Python 3.4 ile birlikte gelen pathlib modülü, dosya ve dizinlerle çalışmayı daha basit ve daha sezgisel hale getirmektedir. Bu modül, nesne yönelimli bir yaklaşım sunarak dosya yolları ile çalışmamızı sağlamaktadır. Pathlib kullanarak dosya isimlerini almak, daha okunabilir bir kod yazmamıza yardımcı olacaktır.

Aşağıda, pathlib modülü ile bir klasördeki dosyaları nasıl listeleyeceğimize dair bir örneği görebilirsiniz:

from pathlib import Path

dizin_yolu = Path('örnek_klasör/')

dosya_listesi = dizin_yolu.iterdir()

print('Klasördeki dosyalar:')
for dosya in dosya_listesi:
    if dosya.is_file():
        print(dosya.name)

Burada, Path sınıfından bir nesne oluşturarak belirttiğimiz klasörü temsil ediyoruz. iterdir() metodu ile bu klasördeki her bir öğeye aday olarak ilerleyerek, uygun kontrolü yaparak yalnızca dosya isimlerini yazdırıyoruz.

Pathlib kullanarak, sistem bağımsız bir yol tanımlama yöntemi ve daha anlaşılır bir kod yapısı elde ediyoruz. Bu yöntemi kullanarak, dosya ve dizin yönetimi işlemlerimizi çok daha kolay ve etkin bir şekilde gerçekleştirebiliriz.

Klasör ve Dosya Sıralama ve Filtreleme

Bazı durumlarla, yalnızca belirli bir dosya türünü, örneğin .txt uzantılı olan dosyaları almak isteyebilirsiniz. Python’da bu tür filtrelemeler yapmak oldukça basittir. Özellikle os ve pathlib modülleri, istediğimiz dosyaları almak için oldukça kullanışlıdır.

Os modülünü kullanarak belirli uzantılara sahip dosyaları filtrelemek için aşağıdaki kodu kullanabiliriz:

import os

dizin_yolu = 'örnek_klasör/'

dosya_listesi = os.listdir(dizin_yolu)

print('Klasördeki .txt uzantılı dosyalar:')
for dosya in dosya_listesi:
    if dosya.endswith('.txt'):
        print(dosya)

Bu örnekte, dosya ismi .txt ile bitenleri filtreleyerek yalnızca metin belgelerini listeledik. Uzantılı dosya üzerinden filtreleme yapmak, belirli bir işlem için gereken dosyayı hızlı bir şekilde bulmamıza yarar.

Pathlib ile bu tür bir filtreleme işlemi yapmak da benzer şekilde mümkündür. İşte bir örnek:

from pathlib import Path

dizin_yolu = Path('örnek_klasör/')

dosya_listesi = dizin_yolu.glob('*.txt')

print('Klasördeki .txt uzantılı dosyalar:')
for dosya in dosya_listesi:
    print(dosya.name)

Burada, glob yöntemi kullanılarak belirli bir dosya uzantısına sahip tüm dosyaları listeliyoruz. Bu yöntem, filtreleme konusunda oldukça etkili bir yol sunar.

Özet

Özetlemek gerekirse, Python ile klasördeki dosya isimlerini almak oldukça basit ve etkilidir. Os ve pathlib gibi modülleri kullanarak, klasördeki dosyaları listelemek ve filtrelemek mümkündür. Her iki yöntem de kullanıcı dostudur ve belirli durumlar için esneklik sunar.

Bunların yanı sıra, yalnızca dosya isimlerini almak, belirli uzantılara göre filtrelemek gibi işlemler de oldukça kolaydır. Bunu yaparken temiz kod yazma prensiplerine uyarak, kodunuzun okunabilirliğini artırabilirsiniz. Test Driven Development tarzında bir yaklaşım benimseyerek, kodunuzun güvenilirliğini artırabilirsiniz.

Python ile dosya işlemleri yaparak zamanınızı daha verimli kullanabilir, projelerinizi kolayca yönetebilirsiniz. Şimdi, öğrendiğiniz bu teknikleri kendi projelerinizde denemeye davet ediyorum. Unutmayın, denemekten asla vazgeçmeyin!

Scroll to Top