Python ile Aynı Dosyaları Bulma Yöntemleri

0 الردود 2 المشاهدات
·
المشاركون
صاحب الموضوع #1
Python ile Aynı Dosyaları Bulma

Python, dosya yönetimi ve otomasyon alanında güçlü kütüphaneleri sayesinde, sistemdeki aynı içerikteki dosyaları tespit etmek için ideal bir araçtır. Bu işlemi gerçekleştirmek, özellikle disk temizliği veya yedekleme işlemlerinde büyük zaman kazandırabilir. Peki, bu işlemi nasıl yapabiliriz?

İlk adım olarak, dosyaların içeriklerini karşılaştırmak gerekir. En etkili yöntemlerden biri, dosya içeriğinin hash değerlerini hesaplamaktır. MD5 veya SHA256 gibi algoritmalar kullanılarak, her dosyanın benzersiz bir özet değeri elde edilir. Aynı hash değerine sahip dosyalar, içeriği aynıdır diyebiliriz. Bu yöntemin avantajı, büyük dosyaları karşılaştırırken zaman tasarrufu sağlamasıdır; çünkü içerik karşılaştırması yerine sadece hash karşılaştırması yapılır.

İkinci yöntem ise, dosya boyutlarına göre önseçim yapmaktır. Aynı boyutta olan dosyalar daha sonra detaylı bir içerik karşılaştırmasına alınabilir. Bu, özellikle binlerce dosya içeren büyük dizinlerde, ilk aşamada gereksiz karşılaştırmaları engeller.

Üçüncü aşama ise, karşılaştırma algoritmasını otomatikleştirmektir. Aşağıdaki örnekte, Python'da os ve hashlib kütüphaneleri kullanılarak, belirli bir dizindeki tüm dosyaların hash değerleri hesaplanıp, aynı hash’e sahip dosyalar listelenir:

كود
123456789101112131415161718192021222324
import os
import hashlib

def hash_file(path):
    hasher = hashlib.md5()
    with open(path, 'rb') as f:
        buf = f.read(65536)  # 64 KB'lık bloklar halinde oku
        while buf:
            hasher.update(buf)
            buf = f.read(65536)
    return hasher.hexdigest()

directory = 'hedef_klasor_yolu'
hash_dict = {}

for root, dirs, files in os.walk(directory):
    for filename in files:
        full_path = os.path.join(root, filename)
        file_hash = hash_file(full_path)
        if file_hash in hash_dict:
            print(f"Benzer Dosya Bulundu: {full_path} ve {hash_dict[file_hash]}")
        else:
            hash_dict[file_hash] = full_path


Bu kod, belirtilen klasördeki tüm dosyaların hash değerlerini hesaplar ve aynı hash’e sahip dosyaları tespit eder. Aynı içeriğe sahip dosyaların listelenmesi, özellikle büyük veri setlerinde oldukça faydalıdır.

Sonuç olarak, Python kullanarak aynı dosyaları bulmak hem kolay hem de otomasyona uygun bir işlemdir. Bu yöntemler, dosya sisteminizdeki gereksiz tekrarları temizlemenize veya yedekleme süreçlerinizi optimize etmenize yardımcı olur. Ayrıca, farklı algoritmalar ve karşılaştırma seviyeleri ile ihtiyaca göre uyarlama yapabilirsiniz.

يجب تسجيل الدخول للرد.

المستخدمون الذين يشاهدون هذا الموضوع (الإجمالي: 1, الأعضاء: 1, الضيوف: 0)
الإجمالي: 1 (الأعضاء: 1, الضيوف: 0)
0 اقتباسات محددة