Python ile Duplicate Dosya Temizleme Yöntemleri

0 Yanıt 2 Görüntülenme
·
Katılımcılar
Konuyu Açan #1
[quote]Python'da aynı içeriğe sahip dosyaları tespit edip otomatik olarak silmek, özellikle büyük veri depolama alanlarında önemli bir ihtiyaç haline geldi. Bu işlem, hem depolama alanını optimize eder hem de düzeni sağlar. Bu konuda çeşitli yaklaşımlar ve araçlar mevcut. Konunun temelinde, dosya içeriklerini karşılaştırmak ve tekrar edenleri ayırt etmek yatar.

İlk olarak, dosya içeriklerinin karşılaştırılması gerekir. Bu noktada, dosya boyutlarını kontrol etmek veya hash fonksiyonları kullanmak en yaygın yöntemlerdir. Hash yöntemi, dosyanın içeriğini alıp sabit uzunlukta bir parola gibi özet üretir ve karşılaştırma bu özetler üzerinden yapılır. Bu, özellikle büyük dosyaların karşılaştırılmasında zaman tasarrufu sağlar.

Python'da bunu gerçekleştirmek için hashlib modülü kullanılabilir. Örneğin, MD5 veya SHA256 algoritmaları ile dosya hash'leri alınabilir. Ardından, aynı hash'e sahip dosyalar, içerik açısından aynıdır ve biri silinebilir. Bu yöntemi kullanarak, otomatik temizleme scriptleri yazmak mümkündür. Ayrıca, os ve glob modülleri ile belirli dizinlerdeki dosyaları tarayabilir ve işlemi otomatik hale getirebilirsiniz.

Aşağıda temel bir örnek kod parçası yer almaktadır:

KOD
12345678910111213141516171819202122python
import os
import hashlib

def hash_dosya(dosya_path):
    hash_obj = hashlib.sha256()
    with open(dosya_path, 'rb') as f:
        for blok in iter(lambda: f.read(65536), b''):
            hash_obj.update(blok)
    return hash_obj.hexdigest()

dizin = "/path/to/dizin"
dosya_hashleri = {}
for root, dirs, files in os.walk(dizin):
    for dosya in files:
        tam_yol = os.path.join(root, dosya)
        hash_degeri = hash_dosya(tam_yol)
        if hash_degeri in dosya_hashleri:
            print(f"Silinen: {tam_yol}")
            os.remove(tam_yol)
        else:
            dosya_hashleri[hash_degeri] = tam_yol


Bu script, belirtilen dizindeki tüm dosyaları tarar, hash'lerini hesaplar ve tekrar edenleri siler. Bu temel yaklaşım, büyük veri setlerinde bile hızlı ve güvenilir sonuçlar verir. Ayrıca, farklı hash algoritmaları veya gelişmiş karşılaştırma yöntemleriyle de uyarlanabilir.

Sonuç olarak, Python kullanarak duplicate dosya temizliği otomasyonunu sağlamak, hem zaman hem de alan tasarrufu açısından oldukça faydalıdır. Bu yöntemi kendi ihtiyaçlarınıza göre özelleştirerek, düzenli ve verimli bir dosya yönetimi sağlayabilirsiniz.

Yanıt vermek için giriş yapmış olmalısınız.

Bu konuyu görüntüleyen kullanıcılar (Toplam: 2, Üyeler: 2, Misafirler: 0)
Toplam: 2 (üyeler: 2, misafirler: 0)
0 alıntı seçildi