Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

A codec for safe filenames.

Project Description


The codec safename is meant to rename files to safe filenames. These safe filenames have the following properties:

  • The safe filenames are valid on most filesystems.
  • The safe filenames can be restored to the original filenames.
  • The safe filenames are more or less readable.


Input Output
spam spam
Spam {s}pam
SPAM {spam}
spam eggs spam_eggs
spam   eggs spam___eggs
spàm sp(e0)m

The script safename will rename a list of files, by applying the codec safename to the current filenames.


Install the distribution from source:

$ python install

Or install with easy_install:

$ easy_install fnord.safename


Import the package fnord.safename to register the codec safename:

>>> import fnord.safename

Now you can encode and decode strings:

>>> "Spam".encode("safename")
>>> "{s}pam".decode("safename")


safename [-d|--decode] [-t|--test] [-v|--verbose] [FILE ...]
safename [-e|--encode] [-t|--test] [-v|--verbose] [FILE ...]
--decode, -d decode from safe filenames for the given files
--encode, -e encode to safe filenames for the given files
--recursive, -r
 decode or encode filenames recursively
--test, -t don’t rename the files
--verbose, -v print out every renaming operation


Based on the module safefilename from Torsten Bronger’s Bobcat project. The implementation is my own.



0.5 (2013-08-17)

  • Refactor code to use class re.Scanner [Bert Vanderbauwhede]

0.4 (2013-08-11)

  • Refactor code to use package fnord.easycodec [Bert Vanderbauwhede]

0.3 (2013-08-10)

  • Add option --recursive to the script [Bert Vanderbauwhede]
  • Synchronize documentation for options [Bert Vanderbauwhede]
  • Change error-messages [Bert Vanderbauwhede]

0.2 (2013-07-28)

  • Fix handling of exceptions [Bert Vanderbauwhede]
  • Clean up and expand readme [Bert Vanderbauwhede]
  • Change license to LGPL [Bert Vanderbauwhede]
  • Add tests [Bert Vanderbauwhede]
  • Add buildout [Bert Vanderbauwhede]

0.1 (2013-07-14)

  • Package created using templer [Bert Vanderbauwhede]
  • First implementation [Bert Vanderbauwhede]
Release History

Release History

This version
History Node


History Node


History Node


History Node


History Node


Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
fnord.safename-0.5.tar.gz (7.9 kB) Copy SHA256 Checksum SHA256 Source Aug 17, 2013

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting