[B]Python, günlük otomasyon ve dosya yönetimi işleri için güçlü ve esnek bir dil. Bu nedenle, dosya sıkıştırma işlemlerini otomatik hale getirmek isteyenler için oldukça uygun. Özellikle, büyük dosya koleksiyonlarını veya belirli klasörleri tek bir arşiv haline getirmek, hem depolama alanını azaltmak hem de dosyaları düzenli tutmak açısından önemli. Bu noktada, Python’un standart kütüphanesinde bulunan
zipfile modülü devreye giriyor.
İşte temel bir dosya sıkıştırma scripti örneği:
12345678910111213import os
import zipfile
def zip_klasor(klasor_yolu, zip_dosyasi_yolu):
with zipfile.ZipFile(zip_dosyasi_yolu, 'w', zipfile.ZIP_DEFLATED) as zipf:
for root, dirs, dosyalar in os.walk(klasor_yolu):
for dosya in dosyalar:
dosya_yolu = os.path.join(root, dosya)
arcname = os.path.relpath(dosya_yolu, start=klasor_yolu)
zipf.write(dosya_yolu, arcname)
[b]Kullanım örneği:[/b]
[b]zip_klasor('C:/Belgeler/Proje', 'C:/Belgeler/ProjeSikistirilmis.zip')
[/b]
Burada temel mantık, belirli bir klasör yolunu alıp içindeki tüm dosyaları ve alt klasörleriyle birlikte zip formatında sıkıştırmak.
os.walk() fonksiyonu, klasör yapısını derinlemesine gezerek tüm dosyaları yakalamayı sağlıyor.
arcname parametresi, sıkıştırılan dosyanın arşiv içindeki yolunu belirliyor, böylece orijinal klasör yapısı korunuyor.
Dilerseniz, bu scripti otomasyon amaçlarıyla zamanlayıcılar veya GUI arayüzleriyle entegre edebilirsiniz. Ayrıca, sadece belirli dosya türlerini seçmek veya sıkıştırma seviyesini ayarlamak gibi geliştirmeler de mümkün.
Kısaca, Python’un sağladığı bu yerleşik araçlar sayesinde, manuel sıkıştırma işlemlerini otomatik hale getirerek zaman ve emek tasarrufu sağlayabilirsiniz. Bu yöntem, özellikle düzenli aralıklarla arşivleme yapan sistemler veya büyük veri yığınlarıyla çalışan projeler için oldukça kullanışlıdır.
Bu temel örnek, ihtiyaçlarınıza göre genişletilebilir ve farklı sıkıştırma formatları veya seçenekler eklenebilir. Python’un geniş kütüphane desteği sayesinde, dosya sıkıştırma işlemlerini özelleştirmek ve otomatikleştirmek oldukça erişilebilir hale gelir.