Scroll to navigation

PATHTOOLS(3) pathtools PATHTOOLS(3)

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.
genindex
modindex
search

AUTHOR

Yesudeep Mangalapilly

COPYRIGHT

2010, Yesudeep Mangalapilly
April 15, 2014 0.1.2