skip to navigation
skip to content

Not Logged In

pathlib 0.7

Object-oriented filesystem paths

Latest Version: 1.0

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

Requirements

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

Install

easy_install pathlib or pip install pathlib should do the trick.

Examples

Importing the module classes:

>>> from pathlib import *

Listing Python source files in a directory:

>>> p = Path('.')
>>> list(p.glob('*.py'))
[PosixPath('test_pathlib.py'), PosixPath('setup.py'),
 PosixPath('pathlib.py')]

Listing all Python source files in this directory tree:

>>> list(p.glob('**/*.py'))
[PosixPath('test_pathlib.py'), PosixPath('setup.py'),
 PosixPath('pathlib.py'), PosixPath('docs/conf.py'),
 PosixPath('build/lib/pathlib.py')]

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
PosixPath('/etc/init.d/reboot')
>>> q.resolve()
PosixPath('/etc/rc.d/init.d/halt')

Querying path properties:

>>> q.exists()
True
>>> q.is_dir()
False
>>> q.st_mode
33261

Opening a file:

>>> with q.open() as f: f.readline()
...
'#!/bin/bash\n'

Documentation

The full documentation can be read at Read the Docs.

Contributing

The issue tracker and repository are hosted by BitBucket.

History

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 length.
 
File Type Py Version Uploaded on Size
pathlib-0.7.tar.gz (md5) Source 2012-07-29 33KB
  • Downloads (All Versions):
  • 109 downloads in the last day
  • 651 downloads in the last week
  • 3256 downloads in the last month