File Stacker
A command-line tool that organizes files by grouping them based on their creation time and copying them into timestamped folders.
Description
File Stacker groups files with specified extensions by their creation time within a configurable tolerance window. Files created within the tolerance period are grouped together and copied into folders named with the start and end timestamps of that group.
This is particularly useful for organizing photos or files that were created in bursts (e.g., photo shoots, batch imports) where you want to keep related files together.
Installation
Using pip
pip install file-stacker
Using pipx (recommended for CLI tools)
pipx install file-stacker
Usage
Basic Usage
Stack files in the current directory with default settings (10 second tolerance, JPG and CR3 files):
file-stacker stack
Specify a Directory
Stack files in a specific directory:
file-stacker stack /path/to/directory
Custom Tolerance
Adjust the time tolerance window (in seconds):
file-stacker stack --tolerance 30
Custom File Extensions
Specify which file extensions to process:
file-stacker stack --extensions jpg png cr3 raw
Complete Example
Stack files in a directory with a 60-second tolerance, processing only RAW files:
file-stacker stack /path/to/photos --tolerance 60 --extensions cr3 raw
Options
path: Directory path to stack (default: current directory.)--tolerance: Time difference in seconds to consider files as part of the same group (default:10)--extensions: File extensions to group by (default:["jpg", "cr3"])
Metadata
Release files for file-stacker 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| file_stacker-0.1.0.tar.gz | 3.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| file_stacker-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 6.9 kB
Release files / file_stacker-0.1.0.tar.gz
| Download URL | file_stacker-0.1.0.tar.gz |
|---|---|
| Size | 3.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2691b6effd9bbb8d9942c80c5a2239071a10a90b388af0462370d35402dd1db9
|
|
BLAKE2b-256 checksum How to use checksums |
98e17ccebf78b8afe4cd61659cdbe8abe843eea666d17aaf8bddb8e34eb3f1af
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 28, 2025.
Transparency logRelease files / file_stacker-0.1.0-py3-none-any.whl
| Download URL | file_stacker-0.1.0-py3-none-any.whl |
|---|---|
| Size | 3.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
543f70b478601e4994c4c62480f80f595e926b324f01a39469f4ae88086df0e8
|
|
BLAKE2b-256 checksum How to use checksums |
08c6c47f71f9911e701993b3f873dc67c73ca872281cebeb106f1de79b582803
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 28, 2025.
Transparency log