A permissive filename sanitizer.
Project description
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.
Installation
pip install sanitize_filename
Usage
from sanitize_filename import sanitize
filename = input("Enter a file name:")
filename = sanitize(filename)
Examples:
> 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("..")
'__'
Changelog
-
1.2.0
- Get rid of os dependent checks; ensure uniform behaviour
- Now works on long filenames where the non-extensions part consists of only dots
-
1.1.0
- Try to preserve filename extensions if possible
-
1.0.1
- First release (as 1.0.1 due to a version number mix-up in 1.0.0)
-
1.0.0-dev3
- Black list low code point characters (<32)
-
1.0.0-dev1
- First version
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file sanitize_filename-1.2.0.tar.gz
.
File metadata
- Download URL: sanitize_filename-1.2.0.tar.gz
- Upload date:
- Size: 3.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.1.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e75933e96d426e306eef8c270cc24c3e1971d8715288c9776d801d3d8e7b941a |
|
MD5 | bc54beef1ac1c73e8f4bb01069c1dc66 |
|
BLAKE2b-256 | a31c2757fe1d119304407c501236de0fa7482975f4fbef3d955abc3f7d88c986 |
File details
Details for the file sanitize_filename-1.2.0-py3-none-any.whl
.
File metadata
- Download URL: sanitize_filename-1.2.0-py3-none-any.whl
- Upload date:
- Size: 3.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.1.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a5be41a4371c84cb4a666a9c3baa70e1b2086a3e50b86c7ba5dd579f5ad2f330 |
|
MD5 | cfb54684b3af661d680949eaf29c7e2c |
|
BLAKE2b-256 | 1ef3fd41487943812aedce909d5630c2bcac1b72a8e9e68308195c758f895269 |