Load files easily using relative path names and simple heuristics
A Python 2.x / 3.x equivalent of R's
here package, drawing inspiration from chendaniely's
pyprojroot package, but more closely mirroring the functionality within R's
here. Relative file referencing has never been easier!
You can install the latest stable version with pip via:
pip install pyhere
And if you want to be on the bleeding edge of development, get the latest version from github:
pip install --editable=git+https://github.com/joshpsawyer/pyhere.git#egg=pyhere
Not in conda, yet - just install it from pip in your environment.
from pyhere import here relative_dirA = here("your", "relative", "directory", "file.txt") relative_dirB = here("your/relative/directory/file.txt")
pyhere uses simple heuristics to find a project's root directory. From
Path.cwd(), it traverses upwards, looking for a possible
root_indicators = [ ".here", "requirements.txt", "setup.py", ".vscode", # vscode project ".idea", # pycharm project ".git", ".spyderproject", # spyder ".spyproject", # spyder ".ropeproject" # rope ]
When found, it joins the arguments passed to
here() to the rootpath and returns as a
Path object. If it reaches the system root, it returns the system root and throws a warning.
For a concrete example, imagine the following directory structure:
\project\src\script.py \project\data\data1.csv \project\.here
If you call
data = here("data", "data1.csv")
script.py, you'll get a
Path object representing
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.