pathtools - pathtools Documentation
Python API library for common path and pattern functionality.
You can use pip to install pathtools quickly and
easily:
pathtools.path
- module
- pathtools.path
- synopsis
- Directory walking, listing, and path sanitizing functions.
- author
- Yesudeep Mangalapilly <yesudeep@gmail.com>
pathtools.patterns
- module
- pathtools.patterns
- synopsis
- Wildcard pattern matching and filtering functions for paths.
- author
- Yesudeep Mangalapilly <yesudeep@gmail.com>
- pathtools.patterns.match_path(pathname,
included_patterns=None, excluded_patterns=None,
case_sensitive=True)
- Matches a pathname against a set of acceptable and ignored patterns.
- Parameters
- pathname -- A pathname which will be matched against a
pattern.
- included_patterns -- Allow filenames matching wildcard patterns
specified in this list. If no pattern is specified, the function treats
the pathname as a match_path.
- excluded_patterns -- Ignores filenames matching wildcard patterns
specified in this list. If no pattern is specified, the function treats
the pathname as a match_path.
- case_sensitive -- True if matching should be case-sensitive;
False otherwise.
- Returns
- True if the pathname matches; False otherwise.
- Raises
- ValueError if included patterns and excluded patterns contain the same
pattern.
- Doctests::
-
>>> match_path("/Users/gorakhargosh/foobar.py")
True
>>> match_path("/Users/gorakhargosh/foobar.py", case_sensitive=False)
True
>>> match_path("/users/gorakhargosh/foobar.py", ["*.py"], ["*.PY"], True)
True
>>> match_path("/users/gorakhargosh/FOOBAR.PY", ["*.py"], ["*.PY"], True)
False
>>> match_path("/users/gorakhargosh/foobar/", ["*.py"], ["*.txt"], False)
False
>>> match_path("/users/gorakhargosh/FOOBAR.PY", ["*.py"], ["*.PY"], False)
Traceback (most recent call last):
...
ValueError: conflicting patterns `set(['*.py'])` included and excluded
- pathtools.patterns.match_path_against(pathname,
patterns, case_sensitive=True)
- Determines whether the pathname matches any of the given wildcard
patterns, optionally ignoring the case of the pathname and patterns.
- Parameters
- pathname -- A path name that will be matched against a wildcard
pattern.
- patterns -- A list of wildcard patterns to match_path the filename
against.
- case_sensitive -- True if the matching should be
case-sensitive; False otherwise.
- Returns
- True if the pattern matches; False otherwise.
- Doctests::
-
>>> match_path_against("/home/username/foobar/blah.py", ["*.py", "*.txt"], False)
True
>>> match_path_against("/home/username/foobar/blah.py", ["*.PY", "*.txt"], True)
False
>>> match_path_against("/home/username/foobar/blah.py", ["*.PY", "*.txt"], False)
True
>>> match_path_against("C:\windows\blah\BLAH.PY", ["*.py", "*.txt"], True)
False
>>> match_path_against("C:\windows\blah\BLAH.PY", ["*.py", "*.txt"], False)
True
- pathtools.patterns.filter_paths(pathnames,
included_patterns=None, excluded_patterns=None,
case_sensitive=True)
- Filters from a set of paths based on acceptable patterns and ignorable
patterns.
- Parameters
- pathnames -- A list of path names that will be filtered based on
matching and ignored patterns.
- included_patterns -- Allow filenames matching wildcard patterns
specified in this list. If no pattern list is specified, ["*"]
is used as the default pattern, which matches all files.
- excluded_patterns -- Ignores filenames matching wildcard patterns
specified in this list. If no pattern list is specified, no files are
ignored.
- case_sensitive -- True if matching should be case-sensitive;
False otherwise.
- Returns
- A list of pathnames that matched the allowable patterns and passed through
the ignored patterns.
- Doctests::
-
>>> pathnames = set(["/users/gorakhargosh/foobar.py", "/var/cache/pdnsd.status", "/etc/pdnsd.conf", "/usr/local/bin/python"])
>>> set(filter_paths(pathnames)) == pathnames
True
>>> set(filter_paths(pathnames, case_sensitive=False)) == pathnames
True
>>> set(filter_paths(pathnames, ["*.py", "*.conf"], ["*.status"], case_sensitive=True)) == set(["/users/gorakhargosh/foobar.py", "/etc/pdnsd.conf"])
True
Found a bug in or want a feature added to pathtools? You
can fork the official code repository or file an issue ticket at the
issue tracker.
- Index
- Module Index
- Search Page
2022, Yesudeep Mangalapilly