Actualmente estoy accediendo al directorio principal de mi archivo usando Pathlib de la siguiente manera:
Path(__file__).parentCuando lo imprimo, y esto me da el siguiente resultado:
print('Parent: ', Path(__file__).parent) #output /home/user/EC/main-folder La main-folder tiene un archivo .env al que quiero acceder y para eso quiero unir la ruta principal con el .env . En este momento, hice:
dotenv_path = os.path.join(Path(__file__).parent, ".env") que funciona Pero me gustaría saber si hay una alternativa de Pathlib a os.path.join() . Algo como:
dotenv_path = pathlib_alternate_for_join(Path(__file__).parent, ".env")Sí hay:
env_path = Path(__file__).parent / ".env" / es todo lo que necesitas. Esto funcionará en diferentes sistemas operativos
Puedes usar algo como esto:
(Path(__file__).parent).joinpath('.env')Documentación:
¿La siguiente definición de filepath de archivo es más cercana en espíritu a 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)Simplemente puede unir cadenas y objetos Path:
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)Eso es porque:
Los constructores de Pathlib aceptan segmentos de ruta. Cada elemento de los segmentos de ruta puede ser una cadena que representa un segmento de ruta, un objeto que implementa la interfaz os.PathLike que devuelve una cadena u otro objeto de ruta:https://docs.python.org/3/library/pathlib.html# pathlib.PurePath