Python ile Klasör İşlemleri: Klasör Yönetimi ve Dosya Manipülasyonu

Python, güçlü standart kütüphanesi sayesinde dosya ve klasör yönetimi gibi işlemleri kolayca gerçekleştirmeye imkan tanır. Bu yazıda, Python’da klasör işlemleriyle ilgili temel fonksiyonları ve kullanım örneklerini ele alacağız.

1. Klasörlerin Listelenmesi

Python‘da bir dizindeki dosyaları ve klasörleri listelemek için os modülü sıkça kullanılır. os.listdir() fonksiyonu belirli bir dizindeki tüm dosya ve klasörleri döner.

import os

# Listelenecek dizin
directory = 'C:/example_directory'

# Dizin içindekileri listele
contents = os.listdir(directory)
print(contents)

Bu kod, directory içinde bulunan tüm dosya ve klasörlerin isimlerini bir liste olarak döner.

2. Klasör Oluşturma

Python’da klasör oluşturmak için os.makedirs() veya os.mkdir() fonksiyonlarını kullanabiliriz. Eğer birden fazla alt klasör oluşturmanız gerekiyorsa os.makedirs() tercih edilir, çünkü bu fonksiyon ara klasörleri de oluşturabilir.

# Tek bir klasör oluşturma
os.mkdir('C:/example_directory/new_folder')

# İç içe klasörler oluşturma
os.makedirs('C:/example_directory/parent_folder/child_folder')

os.makedirs() kullanarak, eğer belirtilen ara klasörler yoksa onları da otomatik olarak oluşturur.

3. Klasör Silme

Bir klasörü silmek için os.rmdir() veya shutil.rmtree() fonksiyonlarını kullanabilirsiniz. Ancak, os.rmdir() yalnızca boş klasörleri siler, dolu klasörler için shutil.rmtree() kullanmalısınız.

import shutil

# Boş klasör silme
os.rmdir('C:/example_directory/new_folder')

# Dolu klasörü tüm içeriğiyle birlikte silme
shutil.rmtree('C:/example_directory/parent_folder')

Bu komutlar dikkatli kullanılmalıdır çünkü silinen klasörler geri getirilemez.

4. Dosyaları Kopyalama

Bir klasördeki dosyaları başka bir klasöre kopyalamak için shutil.copy() veya shutil.copytree() kullanabilirsiniz.

# Belirli bir dosyayı kopyalama
shutil.copy('C:/example_directory/file.txt', 'C:/destination_directory')

# Bir klasörü ve içindeki tüm dosyaları kopyalama
shutil.copytree('C:/example_directory', 'C:/backup_directory')

shutil.copytree(), bir klasörü ve altındaki tüm dosya ve klasörleri yeni bir yere kopyalar.

5. Klasör ve Dosya Adlarını Değiştirme

Klasör veya dosya adlarını değiştirmek için os.rename() kullanabilirsiniz. Bu fonksiyon hem dosya hem de klasör isimlerini değiştirmek için kullanılır.

# Dosya adını değiştirme
os.rename('C:/example_directory/old_name.txt', 'C:/example_directory/new_name.txt')

# Klasör adını değiştirme
os.rename('C:/example_directory/old_folder', 'C:/example_directory/new_folder')

Bu şekilde, dosya veya klasörlerinizi kolayca yeniden adlandırabilirsiniz.

6. Klasörler Arasında Dosya Arama

Bir dizinde veya alt dizinlerinde belirli bir dosyayı aramak için os.walk() kullanılır. Bu fonksiyon, belirtilen dizindeki tüm dosyaları ve klasörleri tarar.

# Bir dizinde dosya arama
for root, dirs, files in os.walk('C:/example_directory'):
    for file in files:
        if file.endswith('.txt'):
            print(os.path.join(root, file))