Organizing 9TB of Photos


photography python

As someone who shoots a lot I’ve learned that staying organized is half the battle. Over time, I found myself repeatedly creating the same folder structure by hand for every new project and realized I needed a tool to automate it β€” so I built one.

πŸ“ The problem

My photo library is big, currently about 9TB over ~150K photos ranging from ‘07 to now. Without a consistent structure, it quickly becomes overwhelming to find files, sync edits, or prepare exports. I wanted to make sure that no matter what camera I was using or what kind of media I was working with (RAW, JPEG, scans, exports), everything landed in a predictable place.

πŸ› οΈ The Solution

I wrote a small Python script called folder_create.py. It builds a uniform folder structure based on:

It supports any number of cameras and creates nested folders for RAWs, JPEGs, scans, and exports. You can download it here.

For example, a typical structure might look like this:

example/
└── Pictures/
    └── 2025/
        └── 03-March/
            └── 31-Example-Event/
                β”œβ”€β”€ Import/
                β”‚   β”œβ”€β”€ M10M/
                β”‚   β”‚   β”œβ”€β”€ RAW
                β”‚   β”‚   β”œβ”€β”€ JPEG
                β”‚   β”‚   β”œβ”€β”€ Home Scans
                β”‚   β”‚   └── Lab Scans
                β”‚   └── Q2/
                β”‚       β”œβ”€β”€ RAW
                β”‚       β”œβ”€β”€ JPEG
                β”‚       β”œβ”€β”€ Home Scans
                β”‚       └── Lab Scans
                └── Export/
                    β”œβ”€β”€ Full JPEGs
                    β”œβ”€β”€ Edits
                    β”œβ”€β”€ Instagram-Post_(1x1)
                    β”œβ”€β”€ Instagram-StoryReel_(9x16)
                    β”œβ”€β”€ Instagram-Portrait_(4x5)
                    β”œβ”€β”€ Instagram-Landscape_(1.91x1)
                    └── Photoshop

βš™οΈ How it works

The script takes command line arguments and builds a discrete folder structure, converting text to easier to organize data.

An example of creating an event where I used two cameras on 3/31 looks like:

folder_create.py \
    --root-folder ./example \
    --cameras M10M,Q2 \
    --event-date 2025-03-31 \
    --event-name "Example Event" \
    --media-type Photo

this would result in the folder structure shown above.

πŸ’‘ Why it matters

Good organization means faster workflows, easier backups, and less mental overhead. Whether I’m editing in Lightroom, syncing files to my NAS, or exporting images for Instagram, I always know where everything belongs.

You can see an example of how clean the folder structure is in Lightroom below.

lightroom

😊 Making it even easier

To avoid having to run anything on the command line every time I import a photo, I created a simple Mac shortcut that does the work for me

shortcuts

The shortcut grabs inputs for the script in a series of menu prompts and then submits them to the script.

lightroom

If you’re someone who ends up with hundreds of folders with no place to go, this might be the tiny bit of automation that saves your sanity.