Using Python to Tame Thousands of Fonts

This project gave me the same feeling I had as a kid when trying to organise my giant pile of LEGO bricks. At first it felt fun and possibly exciting to catergorise. But soon, very soon I realised it was going to take forever when I starting considering:


How should I sort them? By colour? By shape? By size?


Whatever the method, it was going to take a very, very long time and that’s what the start of this project felt like.

On a computer, letters and numbers are stored in fonts. Easy right. pick a font and away you go. but what if you wanted a different font. for every letter or number. – thats al ot of clicking right? thats because there are thousands (maybe hundreds of thousands) of fonts.
Some are thin and fancy, some are bold and loud, and some are playful and silly. We love, i love them, them because they’re everywhere in the real world, from barcodes to giant billboards. But working with fonts one by one? That can be a nightmare. Trust me.

We knew that we wanted to work with Numbers. But to do that, we needed every letter, number, and symbol saved individually in a special format. This was so we could edit and manipulate them individuals later. What we needed were the single lego blocks from the world of FONTS.

At first, we tried doing it by hand in Photoshop and Illustrator. We typed each character, exported it, named the file, then moved on to the next one. But it was slow and inconsistent:

  • Sometimes files got weird names from typos.
  • Sometimes letters weren’t centered correctly.
  • Sometimes we simply missed a character.

After a whole week, we realised we were losing huge amounts of time on work that was boring, frustrating, and not very creative. We needed help.

That’s when we decided: let the computer do what computers do best. Compute!

Python is a programming language. Think of it like a super-fast assistant who never gets tired, never gets bored, and always follows instructions exactly. We wrote a Python script (a recipe of instructions) that:

  • Looks at the fonts on our computer or in a folder
  • Breaks each font into individual characters.
  • Saves each character as a picture
  • Organises everything neatly into folders so we can find it later.

Now instead of a messy pile, we had a neat, labeled library of “font bricks” ready to use.

Artists love exploring. We chase tools and ideas as inspiration is everywhere. But sometimes, the tools become overwhelming if you get bogged down in them. Think of the world of Photography:
Most photographers don’t really think about how light is captured on a camera sensor. They just use the camera to make images. If they focused on the wavelengths of light hitting the CMOS Sensor then they’d likely go mad. Whats more they wouldn’t be Photographers anymore but more likely an engineers.

Python is our “camera” here. It does the boring technical part so we can do the fun creative part.

By using Python, we turned a job that would have taken weeks (or months!) into something we can do in just a few clicks. Yes, it took us a few days to learn and set it up, but now we’re ready to move fast:

  • The names are consistent.
  • The folders make sense.
  • Every font is treated fairly.

If something goes wrong, we get an error report before moving on.

Most importantly, the output we created are the building blocks , like LEGO pieces, for the real creative project that we envisioned when we. went down this rabbit hole.

This project wasn’t about showing off coding tricks. It was about using code as a tool to help us do what we do best, faster. Quite simply to focus on the MAKING.

Python didn’t design the fonts or make anything which we’ll publish as our own work, but instead it acted like a super-organised librarian who took our giant pile of. mess and handed everything back neatly labeled.

That means instead of crawling to the start line exhausted, we’re here fresh and ready to go with the finish line already in sight.


Current Location: P2
Random Adventure: Dominican Republic, Sant...
Try a Random Challenge: England, London, Regent...
Unexpected Book Review: Unfu*k Yourself Get Out ...