Extended PathLib

This package monkey-patches some useful extensions on to pathlib from the Python standard library. These extensions are only supported on Posix systems.

Once installed, you can simply import Path from extended_pathlib just as you would from pathlib, and use the new functionality:

>>> from extended_pathlib import Path

>>> tmp = Path('/tmp')
>>> tmp.is_readable()
True

Installation

Use ‘pip3 install extended_pathlib’ to install. Requires Python2.7 or Python3.4 or better.

https://travis-ci.org/KenKundert/extended_pathlib.svg?branch=master

File Types

is_readable

Returns True if the given path points to an existing file or directory that is readable.

>>> Path('/usr/bin/python').is_readable()
True

is_writable

Returns True if the given path points to an existing file or directory that is writable.

>>> Path('/usr/bin/python').is_writable()
False

is_executable

Returns True if the given path points to an existing file or directory that is executable.

>>> Path('/usr/bin/python').is_executable()
True

is_hidden

Returns True if the given path points to an existing file or directory that is hidden (starts with ‘.’).

>>> Path('/usr/bin/python').is_hidden()
False

is_newer

Returns True if the given path is newer than the reference. The reference may be a timestamp, a datetime object, or another path.

>>> Path('/usr/bin/python').is_newer(0)
True

path_from

Returns relative path from start as a path object. This differs from Path.relative_to() in that relative_to() will not return a path that starts with ‘..’.

>>> cwd = Path('.')
>>> cwd.path_from('..')
PosixPath('tests')

sans_ext

Removes the file extension. This differs from Path.stem, which returns the final path component stripped of its extension. This returns the full path stripped of its extension.

>>> Path('a/b.c').sans_ext()
PosixPath('a/b')

write_bytes

Writes a binary file. This is the standard pathlib write_bytes() that was introduced in Python3.5, but back-ported to earlier versions.

write_text

Reads a binary file. This is the standard pathlib write_text() that was introduced in Python3.5, but back-ported to earlier versions.

read_bytes

Reads a binary file. This is the standard pathlib read_bytes() that was introduced in Python3.5, but back-ported to earlier versions.

read_text

Reads a text file. This is the standard pathlib read_text() that was introduced in Python3.5, but back-ported to earlier versions.

expanduser

Expand leading tilde (~) in paths.