path.py
A module wrapper for os.path
Decision gist · record as of 2026-08-14
Yes. path.py is stable, actively maintained, has no known vulnerabilities, and installs with minimal friction. It's worth installing if you prefer object-oriented path operations and need paths to work as strings in legacy APIs—a genuine advantage over pathlib. If you're already using pathlib and it meets your needs, there's no urgent reason to switch, but path.py is a solid alternative for new projects or codebases that value readability and string compatibility.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.5 or later.
- Low friction: pure Python wheel, single lightweight dependency (path itself).
- Actively maintained with recent commits; marked Production/Stable since early releases.
License · maintenance · safety
permissive license (permissive) — MIT license (permissive): you may use, modify, and distribute freely with minimal restrictions, making it suitable for both open-source and proprietary projects.
last release 2020-07-27 (2209 days) · last repo commit 2026-04-13 · 1,124 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 429,261 downloads/mo, #6,741 on PyPI
Alternatives
Verify before relying
from path import Path
d = Path("/home/user/bin")
for f in d.files("*.py"):
f.chmod(0o755)
with Path("somewhere"):
# working directory is now `somewhere`
pass- Whether path.Path objects remain fully compatible with modern pathlib.Path APIs across all use cases.
- Performance characteristics when handling large directory trees compared to pathlib or os.path.
What it is and what it does
path.py wraps filesystem operations into a Path object that inherits from str, letting you call methods like chmod(), walk(), and glob() directly on path instances. Unlike pathlib, Path objects are strings themselves, so they pass directly to APIs that expect text paths without casting. The package provides convenience methods like rmtree() and remove_p() (remove if exists), plus properties like .permissions, all while maintaining a single unified Path class that works across operating systems.
The package has been in active development since 2003 and aims to be a drop-in replacement for pathlib.Path where possible, while remaining faster to iterate than the standard library. It's suitable for scripts, system tools, and applications that need readable, object-oriented path manipulation without the friction of converting to strings for legacy APIs.
Use it for
- Writing cleanup or file-management scripts where you want readable path operations and direct method calls like f.chmod(0o755).
- Building tools that work with filesystem hierarchies and need to pass paths to APIs that don't support PEP 519 PathLike objects.
- Creating subclasses of Path to add custom filesystem behavior without managing OS-specific variants.
- Migrating from os.path code to an object-oriented style while keeping paths compatible with existing string-based APIs.
- Temporary directory and file operations using TempDir and context managers for cleaner resource management.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
path.py is stable, actively maintained, has no known vulnerabilities, and installs with minimal friction. It's worth installing if you prefer object-oriented path operations and need paths to work as strings in legacy APIs—a genuine advantage over pathlib. If you're already using pathlib and it meets your needs, there's no urgent reason to switch, but path.py is a solid alternative for new projects or codebases that value readability and string compatibility.
Install
path-py on PyPI
Before you install
Low friction: pure Python wheel, single lightweight dependency (path itself). Actively maintained with recent commits; marked Production/Stable since early releases.
Requires Python 3.5 or later.
License in practice
MIT license (permissive): you may use, modify, and distribute freely with minimal restrictions, making it suitable for both open-source and proprietary projects.
Quickstart
from path import Path
d = Path("/home/user/bin")
for f in d.files("*.py"):
f.chmod(0o755)
with Path("somewhere"):
# working directory is now `somewhere`
pass
Verify before relying
- Whether path.Path objects remain fully compatible with modern pathlib.Path APIs across all use cases.
- Performance characteristics when handling large directory trees compared to pathlib or os.path.
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.5 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagepath |
| Maintenance | Actively maintained 2,209 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 429,261 / month, #6,741 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Topic :: Software Development :: Libraries :: Python Modules |
Evidence: path.py-12.5.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “object-oriented filesystem paths”
- path.pyProvides Path objects that wrap filesystem operations as methods,…
- pathlibProvides object-oriented filesystem path handling as a backport for…
- pathlib2Backport of Python's standard pathlib module for older Python…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also fspath · oschmod · path · Unipath · pathlib · pathmagic · chialisp-stdlib · flake8-use-pathlib · pathlib-abc · pathlib2