File Organizer
Desktop/CLI sorter with preview mode, collision-safe renames, and empty-folder cleanup.
Project Overview
Overview
Desktop file organizer with both CLI and Tkinter GUI. Sorts files by extension into category folders.
Core Features
- One-click GUI (or CLI) to sort files into Images/Documents/Videos/etc.
- Preview mode (
--dry-runor GUI Preview) to show moves before applying. - Safe renaming on collisions (
_1,_2, …). - Cleans up empty category folders created during a run.
Architecture at a Glance
organizer.py: core logic + CLI.organizer_gui.py: Tkinter GUI callingorganize().- No external services or dependencies beyond Python stdlib.
Tech & Build
External Services & Data Handling
- None. Operates on local file system only. No network calls, no data sent out.
Tech Stack
- Python 3 (tested with 3.13)
- Standard library:
argparse,pathlib,shutil,tkinter,collections
Local Development
- Clone repo, ensure Python 3 is installed.
- Run CLI:
py -3 organizer.py --dry-run - Run GUI:
py -3 organizer_gui.py
Prerequisites
- Python 3.x on Windows. (Tkinter ships with standard Windows Python.)
Setup & Scripts
- Install: no deps needed beyond Python.
- Build exe:
py -3 -m PyInstaller --clean --onefile --windowed --add-binary "C:\\Python313\\python313.dll;." organizer_gui.py - Outputs land in
dist/(ignored by git).
Environment Variables
- None required.
Usage & Ops
Usage Workflow
- Launch GUI (
organizer_gui.pyor the exe). Pick source and target folders. - Click Preview to see planned moves, or Organize now to apply.
- Review the log and per-category summary.
CLI examples:
py -3 organizer.py --dry-run
py -3 organizer.py --source "C:\\Path\\To\\Files" --target-root "D:\\Sorted"
Accessibility & UX Notes
- Clear step labels, big action buttons, high-contrast theme.
- Log panel shows exactly what changed and counts per category.
License
- This project is released under the MIT License. Review the license before redistributing or incorporating the code into other projects.