Skip to main content

About

goldfinch is simple package which removes invalid filename characters from a filename. Pass in a string or unicode (with or without invalid characters) and get valid filename returned (as unicode).

In general, goldfinch will remove invalid filename characters like <>:”/|?* and characters above the 0-255 character set. The default is is to attempt to convert to ascii characters using _unicodedata_.

Install

pip install goldfinch or easy_install -U goldfinch

Why use goldfinch

The only real usecase for this package is when one creates filenames on the fly and there is no way of knowing what exactly will be passed as the filename. I find it particularly useful when I scrape websites.

So, instead of this happening:
>>> fileName = 'this is a filename with some invalid characters in it <>:"/\|?*'
>>> file = open(fileName,"w")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: [Errno 2] No such file or directory: 'this is a filename with some invalid characters in it <>:"/\\|?*'
Do this:
>>> from goldfinch import validFileName as vfn
>>> fileName = 'this is a filename with some invalid characters in it <>:"/\|?*'
>>> file = open(vfn(fileName),"w")

Examples

There are three (space, initCap, and ascii) options available when normalizing a filename.

The default is ‘space=”underscore”, initCap=True, ascii=True’.

  • For space the options are underscore, remove, and keep. The default is underscore which will replace a space with an underscore (_).

  • initCap is a True & False option. True which is the default will convert the first character in a word to cap and leave all others lowercase.

  • ascii is also a True & False option. Once again True is the default which will convert something like this ÅåÄäÖ to this AaAaO. False will leave characters as-is.

Use default setting:
>>> fileName = 'THIS IS a filename with ÅåÄäÖ some characters that will not work like these: <>:"/\|?*'
>>> vfn(fileName)
'This_Is_A_Filename_With_Aaaao_Some_Characters_That_Will_Not_Work_Like_These'
Default with unicode input:
>>> fileName = u'THIS IS a filename with ÅåÄäÖ some characters that will not work like these: <>:"/\|?*'
>>> vfn(fileName)
'This_Is_A_Filename_With_Aaaao_Some_Characters_That_Will_Not_Work_Like_These'
With initCap = False:
>>> vfn(fileName, initCap = False)
'THIS_IS_a_filename_with_AaAaO_some_characters_that_will_not_work_like_these_'
With space = ‘remove’:
>>> vfn(fileName, space = 'remove')
'ThisIsAFilenameWithAaaaoSomeCharactersThatWillNotWorkLikeThese'

Release files for goldfinch 0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for goldfinch 0.4
File Size Uploaded
goldfinch-0.4.tar.gz 2.8 kB Details

Release files / goldfinch-0.4.tar.gz

Download URL goldfinch-0.4.tar.gz
Size 2.8 kB
Tags Source
SHA-256 checksum
How to use checksums
cbfdc568b967046f8c1a54d2c29a7faa09ad5a52ee3061f962259bce5b63791f
BLAKE2b-256 checksum
How to use checksums
ea8ab75ba84e6151e8496ec612be847847b9d00e074c4222a4b443c0782a0b8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.4 This release

1 release file

0.3.1

1 release file

0.3

1 release file

0.2

0.1

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page