Project Description
Build a production-grade system automation tool in Python using pathlib and shutil. The script scans target folders, categorizes files by extensions, creates organized subfolders, handles file collisions safely, and outputs detailed execution logs.
Learning Objectives
- Master file system interaction using modern pathlib.Path abstractions.
- Implement filename collision strategies (e.g. appending timestamps or counters).
- Record all file move operations into an execution log file.
- Implement a Dry-Run simulation flag allowing users to preview changes before moving files.
Technical Requirements & Specifications
### Project Overview
The **File Organizer & Cleaner** gives you practical experience writing system scripts, working with filesystem paths, and automating repetitive tasks safely.
### Technical Requirements
1. **Extension Classifier**: Maps file extensions to category directories.
2. **Collision Resolution**: If `report.pdf` exists in destination, automatically rename to `report_1.pdf`.
3. **Dry-Run Mode**: Print planned operations without mutating filesystem.
4. **Audit Logging**: Write structured logs to `organizer.log`.