Project Case Study

filename-manager

A Python command-line utility for renaming groups of files using configurable rules.

Why I Built It

Batch file operations are simple until they involve enough files that mistakes become expensive. I wanted a reusable command-line tool for applying predictable filename transformations instead of repeatedly writing one-off scripts.

What It Does

filename-manager can add prefixes and suffixes, replace file extensions, and operate recursively through nested directories.

The project is structured as an installable Python command-line application rather than a single disposable script, with automated tests and development tooling around it.

Engineering Focus

File-renaming software has a particularly important failure mode: accidentally overwriting or corrupting user files. The project therefore places emphasis on predictable behavior, collision protection, testing, and clear error handling.

Its development workflow includes pytest and coverage, Ruff, MyPy, Hatch commands, and build/release checks.

Current Status

Version 0.1.0 provides the core batch-renaming functionality. Regex-based substitution is still planned rather than treated as a completed feature, alongside ideas such as dry-run support, undo, configuration files, and a possible graphical interface.