pathlib / README.txt

pathlib offers a set of classes to handle filesystem paths.  It offers the
following advantages over using string objects:

* No more cumbersome use of os and os.path functions.  Everything can be
  done easily through operators, attribute accesses, and method calls.

* Embodies the semantics of different path types.  For example, comparing
  Windows paths ignores casing.

* Well-defined semantics, eliminating any warts or ambiguities (forward vs.
  backward slashes, etc.).


Python 3.2 or later is recommended, but pathlib is also usable with Python 2.7.


``easy_install pathlib`` or ``pip install pathlib`` should do the trick.


Importing the module classes::

    >>> from pathlib import *

Listing Python source files in a directory::

    >>> p = Path('.')
    >>> list(p.glob('*.py'))
    [PosixPath(''), PosixPath(''),

Listing all Python source files in this directory tree::

    >>> list(p.glob('**/*.py'))
    [PosixPath(''), PosixPath(''),
     PosixPath(''), PosixPath('docs/'),

Listing subdirectories::

    >>> [x for x in p if x.is_dir()]
    [PosixPath('.hg'), PosixPath('docs'), PosixPath('dist'),
     PosixPath('__pycache__'), PosixPath('build')]

Navigating inside a directory tree::

    >>> p = Path('/etc')
    >>> q = p['init.d/reboot']
    >>> q
    >>> q.resolve()

Querying path properties::

    >>> q.exists()
    >>> q.is_dir()
    >>> q.st_mode

Opening a file::

    >>> with as f: f.readline()


The full documentation can be read at `Read the Docs


The issue tracker and repository are hosted by `BitBucket


Version 0.8

- Add and PurePath.anchor.
- Add Path.owner and
- Add Path.replace().
- Add Path.as_uri().
- Issue #10: when creating a file with, don't set the executable
- Issue #11: fix comparisons with non-Path objects.

Version 0.7

- Add '**' (recursive) patterns to Path.glob().
- Fix openat() support after the API refactoring in Python 3.3 beta1.
- Add a *target_is_directory* argument to Path.symlink_to()

Version 0.6

- Add Path.is_file() and Path.is_symlink()
- Add Path.glob() and Path.rglob()
- Add PurePath.match()

Version 0.5

- Add Path.mkdir().
- Add Python 2.7 compatibility by Michele Lacchia.
- Make parent() raise ValueError when the level is greater than the path
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.