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

pathtools.path
Directory walking, listing, and path sanitizing functions.
Yesudeep Mangalapilly <yesudeep@gmail.com>

Functions

Returns a recursive or a non-recursive directory walker.
recursive -- True produces a recursive walker; False produces a non-recursive walker.
A walker function.


Walks a directory tree optionally recursively. Works exactly like os.walk() only adding the recursive argument.
  • 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()



Enlists all items using their absolute paths in a directory, optionally recursively.
  • 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()



Enlists all the directories using their absolute paths within the specified directory, optionally recursively.
  • 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()



Enlists all the files using their absolute paths within the specified directory, optionally recursively.
  • 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()



Returns the absolute path for the given path and normalizes the path.
path -- Path for which the absolute normalized path will be found.
Absolute normalized path.


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


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


pathtools.patterns

pathtools.patterns
Wildcard pattern matching and filtering functions for paths.
Yesudeep Mangalapilly <yesudeep@gmail.com>

Functions

Matches a pathname against a set of acceptable and ignored patterns.
  • 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.

True if the pathname matches; False otherwise.
ValueError if included patterns and excluded patterns contain the same pattern.

>>> 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


Determines whether the pathname matches any of the given wildcard patterns, optionally ignoring the case of the pathname and patterns.
  • 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.

True if the pattern matches; False otherwise.

>>> 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
    


Filters from a set of paths based on acceptable patterns and ignorable patterns.
  • 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.

A list of pathnames that matched the allowable patterns and passed through the ignored patterns.

>>> 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

June 20, 2022 0.1.2