Skip to main content

A Python library to sanitize/validate a string such as filenames/file-paths/etc.

Project description

pathvalidate

https://badge.fury.io/py/pathvalidate.svg https://img.shields.io/pypi/pyversions/pathvalidate.svg Linux CI test status Windows CI test status https://coveralls.io/repos/github/thombashi/pathvalidate/badge.svg?branch=master https://img.shields.io/github/stars/thombashi/pathvalidate.svg?style=social&label=Star

Summary

A Python library to sanitize/validate a string such as filenames/file-paths/etc.

Features

  • Sanitize/Validate a string as a:
    • file name

    • file path

  • Multibyte character support

Examples

Validate a filename

Sample Code:
from pathvalidate import validate_filename

try:
    validate_filename("\0_a*b:c<d>e%f/(g)h+i_0.txt")
except ValueError:
    print("invalid filename!")
Output:
invalid filename!

Sanitize a filename

Sample Code:
from pathvalidate import sanitize_filename

fname = "fi:l*e/p\"a?t>h|.t<xt"
print("{} -> {}".format(fname, sanitize_filename(fname)))

fname = "\0_a*b:c<d>e%f/(g)h+i_0.txt"
print("{} -> {}".format(fname, sanitize_filename(fname)))
Output:
fi:l*e/p"a?t>h|.t<xt -> filepath.txt
_a*b:c<d>e%f/(g)h+i_0.txt -> _abcde%f(g)h+i_0.txt

Sanitize a filepath

Sample Code:
from pathvalidate import sanitize_filepath

fpath = "fi:l*e/p\"a?t>h|.t<xt"
print("{} -> {}".format(fpath, sanitize_filepath(fpath)))

fpath = "\0_a*b:c<d>e%f/(g)h+i_0.txt"
print("{} -> {}".format(fpath, sanitize_filepath(fpath)))
Output:
fi:l*e/p"a?t>h|.t<xt -> file/path.txt
_a*b:c<d>e%f/(g)h+i_0.txt -> _abcde%f/(g)h+i_0.txt

For more information

More examples are available at https://pathvalidate.rtfd.io/en/latest/pages/examples/index.html

Installation

pip install pathvalidate

Dependencies

Python 2.7+ or 3.4+ No external dependencies.

Test dependencies

Documentation

https://pathvalidate.rtfd.io/

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

pathvalidate-0.23.0.tar.gz (18.7 kB view hashes)

Uploaded Source

Built Distribution

pathvalidate-0.23.0-py2.py3-none-any.whl (19.4 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page