pathtools3(3)

pathtools Documentation

Section 3 python3-pathtools bookworm source

Description

PATHTOOLS

NAME

pathtools - pathtools Documentation

Python API library for common path and pattern functionality.

EASY INSTALLATION

You can use pip to install pathtools quickly and easily:

$ pip install pathtools

API REFERENCE

pathtools.path

module

pathtools.path

synopsis

Directory walking, listing, and path sanitizing functions.

author

Yesudeep Mangalapilly <yesudeep@gmail.com>

Functions

pathtools.path.get_dir_walker(recursive, topdown=True, followlinks=False)

Returns a recursive or a non-recursive directory walker.
Parameters

recursive -- True produces a recursive walker; False produces a non-recursive walker.

Returns

A walker function.

pathtools.path.walk(dir_pathname, recursive=True, topdown=True,
followlinks=False)

Walks a directory tree optionally recursively. Works exactly like os.walk() only adding the recursive argument.
Parameters

dir_pathname -- The directory to traverse.

recursive -- True for walking recursively through the directory tree; False otherwise.

topdown -- Please see the documentation for os.walk()

followlinks -- Please see the documentation for os.walk()

pathtools.path.listdir(dir_pathname, recursive=True, topdown=True,
followlinks=False)

Enlists all items using their absolute paths in a directory, optionally recursively.
Parameters

dir_pathname -- The directory to traverse.

recursive -- True for walking recursively through the directory tree; False otherwise.

topdown -- Please see the documentation for os.walk()

followlinks -- Please see the documentation for os.walk()

pathtools.path.list_directories(dir_pathname, recursive=True, topdown=True,
followlinks=False)

Enlists all the directories using their absolute paths within the specified directory, optionally recursively.
Parameters

dir_pathname -- The directory to traverse.

recursive -- True for walking recursively through the directory tree; False otherwise.

topdown -- Please see the documentation for os.walk()

followlinks -- Please see the documentation for os.walk()

pathtools.path.list_files(dir_pathname, recursive=True, topdown=True,
followlinks=False)

Enlists all the files using their absolute paths within the specified directory, optionally recursively.
Parameters

dir_pathname -- The directory to traverse.

recursive -- True for walking recursively through the directory tree; False otherwise.

topdown -- Please see the documentation for os.walk()

followlinks -- Please see the documentation for os.walk()

pathtools.path.absolute_path(path)

Returns the absolute path for the given path and normalizes the path.
Parameters

path -- Path for which the absolute normalized path will be found.

Returns

Absolute normalized path.

pathtools.path.real_absolute_path(path)

Returns the real absolute normalized path for the given path.
Parameters

path -- Path for which the real absolute normalized path will be found.

Returns

Real absolute normalized path.

pathtools.path.parent_dir_path(path)

Returns the parent directory path.
Parameters

path -- Path for which the parent directory will be obtained.

Returns

Parent directory path.

pathtools.patterns

module

pathtools.patterns

synopsis

Wildcard pattern matching and filtering functions for paths.

author

Yesudeep Mangalapilly <yesudeep@gmail.com>

Functions

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

AUTHOR

Yesudeep Mangalapilly

COPYRIGHT

2022, Yesudeep Mangalapilly