Python ile Dosya Düzenleme ve Otomatik Klasör Organize Etme Uygulaması
Python ile geliştirilebilecek en faydalı ve gerçek hayatta kullanılabilir projelerden biri otomatik dosya düzenleme sistemidir. Bilgisayarda biriken belgeler, görseller, videolar ve indirilen dosyalar zamanla karmaşık hale gelir ve kullanıcı deneyimini olumsuz etkiler. Özellikle masaüstü veya indirilenler klasörünün düzensiz olması günlük iş akışını zorlaştırabilir. Bu projede Python kullanarak otomatik çalışan bir dosya düzenleme uygulaması geliştireceğiz. Uygulama sayesinde kullanıcılar belirlenen klasördeki dosyaları uzantılarına göre otomatik olarak kategorilere ayırabilecek. Örneğin PDF dosyaları “Belgeler” klasörüne, PNG ve JPG dosyaları “Resimler” klasörüne, MP4 dosyaları ise “Videolar” klasörüne taşınacaktır. Bu tarz projeler gerçek hayatta doğrudan işe yaradığı için hem portfolyo açısından güçlü görünür hem de Python öğrenen kişiler için oldukça öğretici olur.
Bu Python dosya organize etme uygulaması geliştirilirken dosya yönetimi, koşul yapıları, döngüler, listeleme işlemleri ve klasör kontrolü gibi temel programlama mantıkları kullanılmaktadır. Özellikle Python’ın güçlü standart kütüphanelerinden biri olan os ve shutil modülleri sayesinde dosya taşıma işlemleri kolayca gerçekleştirilmektedir. Proje içerisinde if-else yapıları ile dosya uzantıları kontrol edilirken, for döngüsü ile tüm klasör içerisindeki dosyalar taranmaktadır. Ayrıca klasör mevcut değilse otomatik oluşturma işlemi yapıldığı için uygulama tamamen kullanıcı dostu bir yapıya sahiptir. Gerçek dünyada kullanılan otomasyon sistemlerinin temel mantığını öğreten bu proje, başlangıç seviyesinden orta seviyeye geçmek isteyen geliştiriciler için oldukça değerlidir. GitHub üzerinde paylaşıldığında profesyonel bir görüntü oluşturan bu tarz otomasyon projeleri, yazılım kariyerinde dikkat çekici çalışmalar arasında yer alır.
import os
import shutil
KAYNAK_KLASOR = "karisik_dosyalar"
DOSYA_TURLERI = {
"Resimler": [".jpg", ".png", ".jpeg", ".gif"],
"Belgeler": [".pdf", ".docx", ".txt"],
"Videolar": [".mp4", ".mov", ".avi"],
"Muzikler": [".mp3", ".wav"]
}
def klasor_olustur(klasor_adi):
if not os.path.exists(klasor_adi):
os.makedirs(klasor_adi)
def dosyalari_duzenle():
dosyalar = os.listdir(KAYNAK_KLASOR)
for dosya in dosyalar:
dosya_yolu = os.path.join(KAYNAK_KLASOR, dosya)
if os.path.isfile(dosya_yolu):
uzanti = os.path.splitext(dosya)[1].lower()
tasindi = False
for klasor, uzantilar in DOSYA_TURLERI.items():
if uzanti in uzantilar:
hedef_klasor = os.path.join(KAYNAK_KLASOR, klasor)
klasor_olustur(hedef_klasor)
hedef_yol = os.path.join(hedef_klasor, dosya)
shutil.move(dosya_yolu, hedef_yol)
print(f"{dosya} -> {klasor} klasörüne taşındı.")
tasindi = True
break
if not tasindi:
diger_klasor = os.path.join(KAYNAK_KLASOR, "Diger")
klasor_olustur(diger_klasor)
hedef_yol = os.path.join(diger_klasor, dosya)
shutil.move(dosya_yolu, hedef_yol)
print(f"{dosya} -> Diger klasörüne taşındı.")
dosyalari_duzenle()
Kodun Detaylı Satır Analizi
Kodun kalbi, dosya yönetimini ve kullanıcı etkileşimini sağlayan yapılardır. İşte detaylı inceleme:
os.listdir(KAYNAK_KLASOR): Belirlenen klasör içerisindeki tüm dosya ve klasörleri listelemek için kullanılır.os.path.splitext(dosya)[1].lower(): Dosyanın uzantısını alır ve küçük harfe çevirerek uzantı kontrolünü kolaylaştırır.shutil.move(dosya_yolu, hedef_yol): Dosyayı mevcut konumundan hedef klasöre taşımak için kullanılır.if not os.path.exists(klasor_adi):: Hedef klasör mevcut değilse otomatik olarak oluşturulmasını sağlar.
Bu Proje Sizi Nasıl Geliştirir?
Bu proje sayesinde Python programlama dilinin gerçek hayatta nasıl otomasyon aracı olarak kullanılabileceğini öğrenebilirsiniz. Özellikle dosya yönetimi, klasör işlemleri, döngüler, koşul yapıları ve sistem programlama konularında önemli deneyim kazanırsınız. Aynı zamanda kullanıcı ihtiyaçlarına yönelik yazılım geliştirme mantığını öğrenerek daha profesyonel projeler üretmeye başlayabilirsiniz. Bu tarz otomasyon projeleri GitHub portfolyosunda oldukça dikkat çekici görünür çünkü gerçek problemlere doğrudan çözüm üretir. Projeyi daha ileri seviyeye taşımak için grafik arayüz ekleyebilir, otomatik zamanlama sistemi kurabilir, belirli klasörleri sürekli izleyen canlı takip sistemi geliştirebilir veya dosya türlerini kullanıcıdan dinamik olarak alabilirsiniz. Ayrıca Tkinter ile masaüstü uygulaması geliştirmek veya Flask kullanarak web panel oluşturmak da mümkündür. Bu geliştirmeler sayesinde hem Python bilginizi güçlendirebilir hem de iş başvurularında fark yaratabilecek profesyonel projeler oluşturabilirsiniz.