path.py
implements path objects as first-class entities, allowing
common operations on files to be invoked on those path objects directly. For
example:
from path import Path
d = Path('/home/guido/bin')
for f in d.files('*.py'):
f.chmod(0o755)
path.py
is hosted at Github.
Find the documentation here.
Yasoob wrote the Python 101 Writing a Cleanup Script
based on path.py
.
Path.py may be installed using setuptools
, distribute
, or pip
:
pip install path.py
The latest release is always updated to the Python Package Index.
You may also always download the source distribution (zip/tarball), extract
it, and run python setup.py
to install it.
Python 3.4 introduced
pathlib,
which shares many characteristics with path.py
. In particular,
it provides an object encapsulation for representing filesystem paths.
One may have imagined pathlib
would supersede path.py
.
But the implementation and the usage quickly diverge, and path.py
has several advantages over pathlib
:
path.py
implementsPath
objects as a subclass ofstr
(unicode on Python 2), and as a result thesePath
objects may be passed directly to other APIs that expect simple text representations of paths, whereas withpathlib
, one must first cast values to strings before passing them to APIs unaware ofpathlib
.path.py
goes beyond exposing basic functionality of a path and exposes commonly-used behaviors on a path, providing methods likermtree
(from shlib) andremove_p
(remove a file if it exists).- As a PyPI-hosted package,
path.py
is free to iterate faster than a stdlib package. Contributions are welcome and encouraged.
In addition to
pathlib, the
pylib project implements a
LocalPath
class, which shares some behaviors and interfaces with path.py
.
To install a development version, use the Github links to clone or
download a snapshot of the latest code. Alternatively, if you have git
installed, you may be able to use pip
to install directly from
the repository:
pip install git+https://github.com/jaraco/path.py.git
Tests are continuously run by Travis-CI:
To run the tests, refer to the .travis.yml
file for the steps run on the
Travis-CI hosts.
Tagged releases are automatically published to PyPI by Travis-CI, assuming the tests pass.