Skip to main content

CLI and GUI tool for photo organisation and folder management

Project description

file-manager

A CLI and GUI tool for photo organisation and Windows folder management.

Built for photographers who want a fast, repeatable workflow: sort imports by date, rename files consistently, clean up orphaned RAWs, and color-code folders in Windows Explorer.


Features

Feature Description
Organize Move photos into YYMMDD/ sub-folders using EXIF metadata
Rename Rename to <Camera>_<YYMMDD>_<NNN>.<ext> consistently
Clean Delete orphaned RAW files, then rename everything
Color Set a custom icon color in Windows Explorer (Windows only)
GUI Full graphical interface — no terminal needed

Installation

pip install file-manager-maximterest
pip install tkinterdnd2

Requirements: Python 3.10+.
The folder-color feature is Windows-only. All other commands work on macOS and Linux.


Quick start

# Organize a fresh import by date
fm photo_organize "../PHOTOS"

# Rename photos in a folder
fm photo_rename "../PHOTOS/260418"

# Delete orphaned RAWs, then rename
fm photo_clean "../PHOTOS/260418"

# Color a folder (Windows)
fm color "../PHOTOS/260418" green

# Open the GUI
fm gui

CLI reference

fm <command> [options]

Run fm --help to list commands, or fm <command> --help for details.

photo_organize · alias porga

Move photos and RAW files into sub-folders named by their EXIF shoot date (YYMMDD).

fm photo_organize <path>
fm porga <path>
  • RAW files go into a nested RAW/ sub-folder (name configurable in settings.json, and can be null).
  • Files without EXIF data are skipped and reported.
  • Duplicate file names in the destination are skipped.

photo_rename · alias prename

Rename all photos in a folder to <CameraModel>_<YYMMDD>_<NNN>.<ext>.

fm photo_rename <path>
fm prename <path>
  • Matching RAW files are renamed in sync.
  • Padding (NNN) is zero-padded and based on sort order.

photo_clean · alias pclean

Two-step cleanup for a date folder:

  1. Delete any RAW file that has no matching photo.
  2. Rename all remaining photos (photo_rename).
fm photo_clean <path>
fm pclean <path>

⚠ Deletion is permanent. Double-check your path.

color

Set the icon color of a folder in Windows Explorer.

fm color <path> [COLOR] [--subfolders]
Option Description
COLOR One of the colors listed below (default: red)
-sub, --subfolders Apply the color to every direct sub-folder

Available colors:
blue · space · navy · race_blue · teal · light_blue · green · olive · lime · mint · red · orange · pink · purple · maroon · coffee · yellow · white · gray · dark_gray

Windows only — no-op on other platforms.

gui

Open the graphical user interface.

fm gui

GUI

The GUI mirrors all CLI commands with folder pickers, a color selector, and a live output log.

  • Photos tab — pick a folder and click Organize, Rename, or Clean.
  • Color tab — pick a folder, choose a color, apply.
  • Settings tab — edit settings.json inline and save without restarting.

Configuration

Edit settings.json inside the package (or via the Settings tab in the GUI):

{
    "raw_folder": "RAW",
    "photo_extensions": [
        ".jpg",
        ".jpeg",
        ".png",
        ".heic"
    ],
    "raw_extensions": [
        ".raf",
        ".raw"
    ]
}
Key Description
raw_folder Sub-folder name for RAW files
photo_extensions File extensions treated as photos
raw_extensions File extensions treated as RAW files

Publishing to PyPI (for maintainers)

pip install build twine

# Build
python -m build

# Upload to PyPI
twine upload dist/*

Contributing

  1. Fork the repo and create a feature branch.
  2. Keep changes focused — one feature per PR.
  3. Run a quick smoke-test before opening a PR:
    pip install -e .
    fm --help
    fm photo_organize /path/to/test/photos
    

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

file_manager_maximterest-0.2.0.tar.gz (620.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

file_manager_maximterest-0.2.0-py3-none-any.whl (619.7 kB view details)

Uploaded Python 3

File details

Details for the file file_manager_maximterest-0.2.0.tar.gz.

File metadata

  • Download URL: file_manager_maximterest-0.2.0.tar.gz
  • Upload date:
  • Size: 620.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.5

File hashes

Hashes for file_manager_maximterest-0.2.0.tar.gz
Algorithm Hash digest
SHA256 0aa2e84e1ea358ce1d1b24f14f0bb913d438ad1814d971e0f896f79deaab634b
MD5 1f028238019b4937a4fa1364e8b0901b
BLAKE2b-256 bcc97bbd0db0b6f1376614fb5dd60731df49965403fffd9bee9fae8f1b6aab1e

See more details on using hashes here.

File details

Details for the file file_manager_maximterest-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for file_manager_maximterest-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b93264ae395ac8db542d4c44158972067645fd75938236b98e5fcb838ee453cf
MD5 076158566125cce9d974baf1018b9560
BLAKE2b-256 6c1bd149809e0e94a4392b48284f2fa87a6e294b8d03ea9cf30a7a565af1cd48

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page