A permissive filename sanitizer.
A simple, dependency-free, blacklist-based filename sanitizer, for when you want to keep the original filename.
Note that a blacklist based sanitizer will never be as safe as a whitelist based one. In most cases, your best option is to create a safe filename yourself. Your second safest option is to use a whitelist approach (allowing only certain characters). This sanitizer is useful when you want to keep the original filename, including non ascii characters, whenever possible.
pip install sanitize_filename
from sanitize_filename import sanitize filename = input("Enter a file name:") filename = sanitize(filename)
> sanitize("A/B/C.txt") 'ABC.txt' > sanitize("this𓀦filenameḜisあactually...valid.txt") 'this𓀦filenameḜisあactually...valid.txt' > sanitize("def.") 'def' > sanitize("NUL") '__NUL' > sanitize("..") '__'
- Get rid of os dependent checks; ensure uniform behaviour
- Now works on long filenames where the non-extensions part consists of only dots
- Try to preserve filename extensions if possible
- First release (as 1.0.1 due to a version number mix-up in 1.0.0)
- Black list low code point characters (<32)
- First version
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size sanitize_filename-1.2.0-py3-none-any.whl (3.9 kB)||File type Wheel||Python version py3||Upload date||Hashes View|
|Filename, size sanitize_filename-1.2.0.tar.gz (3.8 kB)||File type Source||Python version None||Upload date||Hashes View|
Hashes for sanitize_filename-1.2.0-py3-none-any.whl