Tame your chaotic Downloads folder with one Python script
MP3s mixed with PDFs, ZIPs buried under selfies, and that one important PDF you can never find? This script turns your digital dumpster into 11 perfectly sorted folders.
Built by a mechatronics engineer juggling .slx, .py, .stl, and more—so it is designed for real engineering workflows, not just “Downloads cleanup”.
Tired of your Downloads folder looking like a digital dumpster fire? MP3s mixed with PDFs, ZIP files hiding among selfies, and Python scripts lost in the shuffle?
As a mechatronics engineer who juggles code files (.slx, .py), 3D models (.stl), and everything else, I built this smart file organizer that automatically sorts your mess into 11 perfect folders.
No more manual sorting. No more “Where’s that important PDF?!” moments. Just run it and watch the magic. ✨
📁 What It Creates (11 Smart Categories)
Downloads/
├── Music/ (mp3, aac, wav, mpeg)
├── Images/ (jpg, png, jpeg, webp, jfif, gif)
├── Videos/ (mp4, mkv, mov)
├── Documents/ (pdf, docx, xlsx, csv, txt)
├── SoftwareScripts/(py, cpp, slx, json - for coders!)
├── Software/ (exe, zip, rar, apk)
├── PhotoShopfiles/ (psd)
├── Fonts/ (ttf)
├── Html/ (html, xml)
├── Links/ (torrent, srt)
└── Design files/ (stl, dxf - 3D printing!)
Bonus: Handles duplicates smartly (song (1).mp3) and skips folders. Safe & bulletproof! 🔒
💻 The complete script copy–paste ready
import os
import shutil
from pathlib import Path
def organize_files(folder_path):
# Your custom categories - edit as needed!
categories = {
'Music': ['mp3', 'aac', 'wav', 'mpeg'],
'Images': ['jpeg', 'png', 'webp', 'jpg','jfif', 'gif'],
'Videos' :['mp4', 'mkv','mov'],
'Documents': ['doc', 'docx', 'pptx', 'pdf', 'xlsx', 'xlsm', 'txt','csv'],
'SoftwareScrpts': ['py', 'm', 'c', 'cpp', 'slx', 'json'],
'Software': ['exe', 'zip', 'msi','rar','jar','apk'],
'PhotoShopfiles':['psd'],
'Fonts' : ['ttf'],
'Html': ['html','xml'],
'Links': ['torrent','srt'],
'Design files': ['stl', 'dxf']
}
folder = Path(folder_path)
if not folder.exists():
print(f"❌ Folder '{folder_path}' does not exist.")
return
moved_count = 0
for file_path in folder.iterdir():
if file_path.is_dir():
continue
file_ext = file_path.suffix.lower().lstrip('.')
target_folder = None
for cat_folder, exts in categories.items():
if file_ext in exts:
target_folder = folder / cat_folder
break
if target_folder is None:
continue
target_folder.mkdir(exist_ok=True)
# Smart duplicate handling
target_file = target_folder / file_path.name
counter = 1
while target_file.exists():
target_file = target_folder / f"{file_path.stem} ({counter}){file_path.suffix}"
counter += 1
shutil.move(str(file_path), str(target_file))
print(f"✅ Moved '{file_path.name}' → {target_folder.name}/")
moved_count += 1
print(f"🎉 Organized {moved_count} files! Your folder is now tidy.")
# PRO TIP: Change this path to your Downloads folder
if __name__ == "__main__":
organize_files(r"C:\\Users\\inven\\Downloads")
🚀 3‑second setup
- Save this as
file_organizer.py - Edit the last line: point it to your own
Downloadsfolder - Run:
python file_organizer.py - Profit: Clean folder instantly! ✨
Windows tip: Right‑click the folder → “Open PowerShell here” → python file_organizer.py
🏆 Why this beats other organizers
| Feature | This script | Typical organizers |
|---|---|---|
| Custom categories | ✅ 11 dev‑friendly | ❌ Basic 4–5 folders |
| Duplicate handling | ✅ Smart numbering | ❌ Often overwrites files |
| Cross‑platform | ✅ Uses pathlib |
❌ Usually Windows‑only |
| Engineer‑focused | ✅ Knows .slx, .stl, .cpp |
❌ Generic “consumer” presets |
| Setup | ✅ Zero config, just run | ❌ Installers, wizards, settings |
⚡ Pro tips for power users
- Auto‑run daily: Use Windows Task Scheduler with
python file_organizer.py. - Right‑click bliss: Wrap it in a
.batfile for one‑click cleanup. - Custom formats: Add things like
['blend']for Blender into the right category. - External drives: Point the path to your USB or external SSD to clean project dumps.
Stop wasting hours sorting files. Run this script and reclaim your life. 💪
“My Downloads folder went from 🤢 to ✨ instantly.”
Share this with that friend whose Downloads folder needs CPR. 🚀
❓ Common questions
Q: Will it delete files?
A: No. It uses shutil.move() — everything is just relocated safely.
Q: Does it touch subfolders?
A: It only touches top‑level files (fast and safe). Want recursive cleanup? Extend the script with rglob() or a walk—easy upgrade.
Q: Will this work on external drives?
A: Yes. Just update folder_path to point to that drive or folder.
Github link Click here!
0 Comments