Python ile Klasör Temizleme Otomasyonu

0 Replies 2 Views
·
Participants
Thread Starter #1
Merhaba, Python kullanarak belirli bir klasördeki gereksiz dosyaları otomatik olarak silmek veya taşımak için basit ama etkili bir script hazırlamak oldukça faydalı olabilir. Bu tarz bir otomasyon, özellikle yüksek hacimli dosya yönetimi gerektiren durumlarda zamanı büyük ölçüde tasarruf sağlar. İşte temel bir yaklaşımla nasıl yapabileceğinize dair detaylar:


Python'da dosya ve dizin yönetimi için en temel modüllerden biri os modülüdür. Ayrıca, dosya türlerine göre filtreleme ve belirli kriterlerle silme işlemi için pathlib ve shutil gibi modüller de kullanılır. İşte genel akış:

  1. Belirli bir klasör ve alt klasörlerdeki tüm dosyaları listele.
  2. Dosya uzantılarına göre gereksiz olarak tanımladığınız dosyaları filtrele.
  3. Bu dosyaları sil veya başka bir klasöre taşı.
  4. İşlem sırasında hata kontrolü ve log tutma detaylarına dikkat et.


Örneğin, sadece geçici dosyaları veya belirli uzantıya sahip eski dosyaları silmek için şu şekilde bir kod kullanabilirsiniz:

CODE
123456789101112131415161718192021222324252627python
import os
import shutil
from datetime import datetime, timedelta

[b]Temizlik yapılacak klasör yolu[/b]
klasor_yolu = r"C:\KlasorYolu"

[b]Silinecek dosya uzantıları[/b]
gereksiz_uzantilar = ['.tmp', '.log', '.bak']

[b]En eski dosya tarihi (örneğin 30 gün)[/b]
eski_tarih = datetime.now() - timedelta(days=30)

for root, dirs, files in os.walk(klasor_yolu):
    for file in files:
        dosya_yolu = os.path.join(root, file)
        # Dosya uzantısı kontrolü
        if os.path.splitext(file)[1].lower() in gereksiz_uzantilar:
            try:
                # Dosyanın oluşturulma veya değiştirilme tarihi
                dosya_tarihi = datetime.fromtimestamp(os.path.getmtime(dosya_yolu))
                if dosya_tarihi < eski_tarih:
                    os.remove(dosya_yolu)
                    print(f"Silindi: {dosya_yolu}")
            except Exception as e:
                print(f"Hata: {dosya_yolu} - {e}")


Bu temel script, belirttiğiniz klasördeki 30 günden eski ve belirli uzantıya sahip dosyaları otomatik olarak siler. Gelişmiş ihtiyaçlar ve farklı kriterler için scripti genişletmek mümkündür. Örneğin, kullanıcıdan tarih veya uzantı girmesi alınabilir veya dosyaları başka bir yedek klasöre taşıma yapılabilir.

Klasör temizleme işlemi, dikkatli yapılması gereken bir işlem olduğundan, önce yedek almak veya test ortamında denemek önemlidir. Bu tarz otomasyonlar, düzenli temizlik ve disk alanı yönetimi açısından büyük kolaylık sağlar.

You must be logged in to reply.

Users who are viewing this thread (Total: 2, Members: 2, Guests: 0)
Total: 2 (members: 2, guests: 0)
0 quotes selected