Skip to main content
File added late

1 file was added to this release more than 14 days after its initial publication. Inspect the release files before installing.

Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

Attention: this backport module isn’t maintained anymore. If you want to report issues or contribute patches, please consider the pathlib2 project instead.

Description

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 and 2.6.

Install

In Python 3.4, pathlib is now part of the standard library. For Python 3.3 and earlier, 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:

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

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

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

Main development now takes place in the Python standard library: see the Python developer’s guide, and report issues on the Python bug tracker.

However, if you find an issue specific to prior versions of Python (such as 2.7 or 3.2), you can post an issue on the BitBucket project page.

History

Version 1.0.1

  • Pull request #4: Python 2.6 compatibility by eevee.

Version 1.0

This version brings pathlib up to date with the official Python 3.4 release, and also fixes a couple of 2.7-specific issues.

  • Python issue #20765: Add missing documentation for PurePath.with_name() and PurePath.with_suffix().

  • Fix test_mkdir_parents when the working directory has additional bits set (such as the setgid or sticky bits).

  • Python issue #20111: pathlib.Path.with_suffix() now sanity checks the given suffix.

  • Python issue #19918: Fix PurePath.relative_to() under Windows.

  • Python issue #19921: When Path.mkdir() is called with parents=True, any missing parent is created with the default permissions, ignoring the mode argument (mimicking the POSIX “mkdir -p” command).

  • Python issue #19887: Improve the Path.resolve() algorithm to support certain symlink chains.

  • Make pathlib usable under Python 2.7 with unicode pathnames (only pure ASCII, though).

  • Issue #21: fix TypeError under Python 2.7 when using new division.

  • Add tox support for easier testing.

Version 0.97

This version brings pathlib up to date with the final API specified in PEP 428. The changes are too long to list here, it is recommended to read the documentation.

Version 0.8

  • Add PurePath.name and PurePath.anchor.

  • Add Path.owner and Path.group.

  • Add Path.replace().

  • Add Path.as_uri().

  • Issue #10: when creating a file with Path.open(), don’t set the executable bit.

  • 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 length.

Release files for pathlib 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

File added late

1 file was uploaded more than 14 days after the first file in this release.

While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.

We recommend inspecting the release files before installing.

Source distribution (sdist)

Source distribution for pathlib 1.0.1
File Size Uploaded
pathlib-1.0.1.tar.gz 49.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pathlib 1.0.1
File Interpreter ABI Platform
pathlib-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 63.7 kB

Release files / pathlib-1.0.1.tar.gz

Download URL pathlib-1.0.1.tar.gz
Size 49.3 kB
Tags Source
SHA-256 checksum
How to use checksums
6940718dfc3eff4258203ad5021090933e5c04707d5ca8cc9e73c94a7894ea9f
BLAKE2b-256 checksum
How to use checksums
acaa9b065a76b9af472437a0059f77e8f962fe350438b927cb80184c32f075eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / pathlib-1.0.1-py3-none-any.whl

File added late

This file was uploaded more than 14 days after the first file in this release.

While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.

We recommend inspecting the release file before installing.

Download URL pathlib-1.0.1-py3-none-any.whl
Size 14.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f35f95ab8b0f59e6d354090350b44a80a80635d22efdedfa84c7ad1cf0a74147
BLAKE2b-256 checksum
How to use checksums
78f9690a8600b93c332de3ab4a344a4ac34f00c8f104917061f779db6a918ed6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.9.12
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page