pathtools3(3)
pathtools Documentation
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