Universal Pathlib is a python library that aims to extend Python's built-in pathlib.Path
api to use a variety of backend filesystems using fsspec
pip install universal_pathlib
conda install -c conda-forge universal_pathlib
>>> from upath import UPath
>>> import s3fs
>>> s3path = UPath("s3://test_bucket") / "example.txt"
>>> s3path.name
example.txt
>>> s3path.stem
example
>>> s3path.suffix
.txt
>>> s3path.exists()
True
>>> s3path.read_text()
'Hello World'
For more examples, see the example notebook here
file:
Local filessystemmemory:
Ephemeral filesystem in RAMaz:
,adl:
andabfs:
Azure Storage (requiresadlfs
to be installed)http:
andhttps:
HTTP(S)-based filesystemhdfs:
Hadoop distributed filesystemgs:
andgcs:
Google Cloud Storage (requiresgcsfs
to be installed)s3:
ands3a:
AWS S3 (requiress3fs
to be installed)webdav+http:
andwebdav+https:
WebDAV-based filesystem on top of HTTP(S) (requireswebdav4[fsspec]
to be installed)
Other fsspec-compatible filesystems may also work, but are not supported and tested. Contributions for new filesystems are welcome!
MIT License