Is there a Pathlib alternate for os.path.join?
Solution 1
You can use something like this:
(Path(__file__).parent).joinpath('.env')
Documentation:
Solution 2
Yes there is:
env_path = Path(__file__).parent / ".env"
/
is all you need. This will work in different OSs
Solution 3
Is the following definition of filepath
closer in spirit to os.path.join?
import pathlib
main_dir = 'my_main_dir'
sub_dir = 'sub_dir'
fname = 'filename.tsv'
filepath = pathlib.PurePath(main_dir, sub_dir, fname)
Solution 4
You can simply join Path objects and strings:
import pathlib
script_parent_path = pathlib.Path(__file__).parent
my_dir = ".env"
my_new_path = pathlib.Path(script_parent_path, my_dir)
print(my_new_path)
That's because:
Pathlib's constructors accept pathsegments. Each element of pathsegments can be either a string representing a path segment, an object implementing the os.PathLike interface which returns a string, or another path object - https://docs.python.org/3/library/pathlib.html#pathlib.PurePath
reinhardt
Updated on July 05, 2022Comments
-
reinhardt almost 2 years
I am currently accessing the parent directory of my file using
Pathlib
as follows:Path(__file__).parent
When I print it, and this gives me the following output:
print('Parent: ', Path(__file__).parent) #output /home/user/EC/main-folder
The
main-folder
has a.env
file which I want to access and for that I want to join the parent path with the.env
. Right now, I did:dotenv_path = os.path.join(Path(__file__).parent, ".env")
which works. But I would like to know, if there is a
Pathlib
alternate toos.path.join()
? Something like:dotenv_path = pathlib_alternate_for_join(Path(__file__).parent, ".env")
-
Quetzalcoatl about 3 yearsI realize my suggestion may not directly address the context of the original question, but searching for "pathlib os.path.join alternative" returns this page as a top result :-)
-
Learner over 2 yearsDoes it support
Path(__file__).parent / "../env"
-
quest over 2 yearsYou can always do, Path(file).parent.parent / "env"
-
Javier TG about 2 yearsOr
Path(__file__).parents[1] / "env"
-
Quinten Cabo almost 2 yearsAlthough I think it is better to spread this out more this is art