Python
63 ~30 dk
Otomasyon ve Scripting
Dosya Otomasyonu
import os, shutil, glob
from datetime import datetime
# Dosyaları türüne göre sınıfla
def dosya_sinifla(klasor):
tipler = {
"Resimler": [".jpg", ".jpeg", ".png", ".gif"],
"Belgeler": [".pdf", ".docx", ".txt", ".xlsx"],
"Videolar": [".mp4", ".avi", ".mkv"],
"Muzikler": [".mp3", ".wav", ".flac"],
}
for dosya in os.listdir(klasor):
dosya_yolu = os.path.join(klasor, dosya)
if os.path.isfile(dosya_yolu):
uzanti = os.path.splitext(dosya)[1].lower()
for kategori, uzantilar in tipler.items():
if uzanti in uzantilar:
hedef = os.path.join(klasor, kategori)
os.makedirs(hedef, exist_ok=True)
shutil.move(dosya_yolu, os.path.join(hedef, dosya))
print(f"📁 {dosya} → {kategori}/")
break
dosya_sinifla("C:/Users/Kadir/Downloads")Toplu Dosya İsimlendirme
def toplu_yeniden_adlandir(klasor, eski, yeni):
for dosya in glob.glob(os.path.join(klasor, f"*{eski}*")):
yeni_ad = dosya.replace(eski, yeni)
os.rename(dosya, yeni_ad)
print(f"✅ {os.path.basename(dosya)} → {os.path.basename(yeni_ad)}")
toplu_yeniden_adlandir("./fotolar", "IMG_", "tatil_")🎯 Alıştırmalar
- Belirli bir klasördeki büyük dosyaları (>100MB) bulan program
- Eski dosyaları (30 günden eski) yedek klasöre taşıyan program